diff --git a/Config/DefaultDeviceProfiles.ini b/Config/DefaultDeviceProfiles.ini
index 6952b32..bb051cc 100644
--- a/Config/DefaultDeviceProfiles.ini
+++ b/Config/DefaultDeviceProfiles.ini
@@ -22,3 +22,16 @@ BaseProfileName=Android_Mali_G77
+CVars=r.Mobile.ScreenSpaceReflections=0
+CVars=r.Streaming.PoolSize=3000
+CVars=r.MaxAnisotropy=4
++CVars=r.TranslucencyLightingVolume.Dim=32
++CVars=r.DetailMode=1
++CVars=r.MaterialQualityLevel=2
++CVars=r.SSS.Scale=0.75
++CVars=r.SSGI.Quality=1
++CVars=r.EmitterSpawnRateScale=0.25
++CVars=r.SkyAtmosphere.AerialPerspectiveLUT.DepthResolution=16.0
++CVars=r.SkyAtmosphere.FastSkyLUT.SampleCountMin=4.0
++CVars=r.SkyAtmosphere.FastSkyLUT.SampleCountMax=32.0
++CVars=r.SkyAtmosphere.SampleCountMin=4.0
++CVars=r.SkyAtmosphere.SampleCountMax=32.0
++CVars=r.SkyAtmosphere.TransmittanceLUT.UseSmallFormat=0
++CVars=fx.Niagara.QualityLevel=1
diff --git a/Content/Game/Blueprints/Girl/Marina/BP_Marina.uasset b/Content/Game/Blueprints/Girl/Marina/BP_Marina.uasset
index 28b5521..34ecda8 100644
--- a/Content/Game/Blueprints/Girl/Marina/BP_Marina.uasset
+++ b/Content/Game/Blueprints/Girl/Marina/BP_Marina.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:714083abfc45b62d4f25005f9552619765f61802494edd1c35543cb21cdb8e36
-size 134476
+oid sha256:f64097f90d5441d10ff9a8cb6ab2a706179fde4121fa8e70c911568267ca6a38
+size 137237
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_Angry.uasset b/Content/Game/Blueprints/Girl/Rita/MP_Angry.uasset
index 80722ff..05acd22 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_Angry.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_Angry.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:90fbb61f7fc632e0fc9e95b5c6bb75263c125bdfa3ad9a15e539059fe1c3da58
-size 6385
+oid sha256:192ec12381e53c856d41e4fae127423d36a2c821f7e59b38708e475120f8c29d
+size 6727
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_AngryBurst.uasset b/Content/Game/Blueprints/Girl/Rita/MP_AngryBurst.uasset
index fe4fd81..8bacf71 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_AngryBurst.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_AngryBurst.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:13cad6680570d32e430ee633262930fc86c0868de49cc60983e719e888a8ce74
-size 6480
+oid sha256:96cc215928712e06c3acc48eefb9fd9b88fcaf2b288b3e8e32516b86ab2189b1
+size 6831
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_ColdDeadStare.uasset b/Content/Game/Blueprints/Girl/Rita/MP_ColdDeadStare.uasset
index 0fc97e5..99c3644 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_ColdDeadStare.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_ColdDeadStare.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c528b487b5f016e4fc7d587ad4517242ab51febc9bdf432ed1ee0c2f3cbb0bed
+oid sha256:9f82324883604872845fe911d48ad02451ac525d8687eee98075af97969a8663
size 6500
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_DialogueAgreeWarm.uasset b/Content/Game/Blueprints/Girl/Rita/MP_DialogueAgreeWarm.uasset
index ad524bb..1b11494 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_DialogueAgreeWarm.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_DialogueAgreeWarm.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c351f9b60505941cbf23b9e64338679e281a2d0260309a8b75db52bdabd9201c
-size 5469
+oid sha256:991c2f981b41a99bcd4b5e73553d1e60bc514665ee181c12e019a3dc36071665
+size 6328
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_DialogueCurious.uasset b/Content/Game/Blueprints/Girl/Rita/MP_DialogueCurious.uasset
index 62b13f1..fd7275a 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_DialogueCurious.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_DialogueCurious.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4d62bf6a7fc6a9db0c438f6b7777037d0ca804e6739a96fa360522e668bb8681
-size 6111
+oid sha256:52f5ba0c5bed462f038f32c5e07b5f49f07e3caf3df39f3594bf4bc2fb62915b
+size 6963
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_DialogueListenSoft.uasset b/Content/Game/Blueprints/Girl/Rita/MP_DialogueListenSoft.uasset
index 007d0ad..663d968 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_DialogueListenSoft.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_DialogueListenSoft.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f84b43fef7803749928ea86bb31ad7979987a8520b7b973ec122f3629cf3d10e
-size 5316
+oid sha256:7522790a52a03a66e621d2adf001d3896b05633d2e2bf58fe773a2c4ff882ccf
+size 6184
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_DialogueTalkFriendly.uasset b/Content/Game/Blueprints/Girl/Rita/MP_DialogueTalkFriendly.uasset
index 7b9a849..7639e77 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_DialogueTalkFriendly.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_DialogueTalkFriendly.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:dbd0e6041dec0555e1ba91b23b36a67d8c0d24fc2f208f2d99cc229c3a271853
-size 6047
+oid sha256:5ff510752d78ff0cbee4ea203ca3ac5c8bf4835dfc78aef880841a983099c124
+size 7226
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_DialogueThinking.uasset b/Content/Game/Blueprints/Girl/Rita/MP_DialogueThinking.uasset
index 96c08c8..fc35335 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_DialogueThinking.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_DialogueThinking.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8c837e6fa485fac9badf381662f0a57435f782c11a7bb6672905e3365b24a7d6
-size 7523
+oid sha256:983955ccb59c6ae49401abc92a9b67521c57a340c6b55f2d187d3de694e0c4ee
+size 7626
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_EmbarrassedAnimeMAX.uasset b/Content/Game/Blueprints/Girl/Rita/MP_EmbarrassedAnimeMAX.uasset
index 9912962..ad51a65 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_EmbarrassedAnimeMAX.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_EmbarrassedAnimeMAX.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:02c5d960d7e28ecf95a0b0f2abe732f36ea1e18493963f7834939a7b23996a79
-size 8432
+oid sha256:32808eef6a224ea122369fd38f5bcf174f7342c882316c30da7555c2e706f4e9
+size 8535
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_Funny.uasset b/Content/Game/Blueprints/Girl/Rita/MP_Funny.uasset
index d3337b3..3bfcebd 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_Funny.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_Funny.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2b9979cff22142f607f26c253489e70c24c0b3662c970e3fdc6a58426a2438ec
-size 6962
+oid sha256:ed5c15d62e1bd13a78a7eb6f1df1061fa3285035361b61b0a7cea11f84308273
+size 7797
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_Joy.uasset b/Content/Game/Blueprints/Girl/Rita/MP_Joy.uasset
index 013c95c..0fa65e4 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_Joy.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_Joy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f88fdf760f5faa17ee2435adef13d0814b9ac8228f90bc818b2f38c1b099610c
-size 7687
+oid sha256:1071beaa06aef9961efbd90e8c8a57731224fc9619c8ef15ff57df8df94f38c3
+size 7821
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_RelaxedHappy.uasset b/Content/Game/Blueprints/Girl/Rita/MP_RelaxedHappy.uasset
index 266371a..24e0036 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_RelaxedHappy.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_RelaxedHappy.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1fc21f2792352f669c1669a657446cd5c0ed8606b4044d6ed2eff627347381fd
-size 6522
+oid sha256:7c4ca7d671be9258ff1a509e98d5b4f1382795b0448e902fdabbacc6e2277848
+size 6530
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_Shock.uasset b/Content/Game/Blueprints/Girl/Rita/MP_Shock.uasset
index e7eed05..a3c41d8 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_Shock.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_Shock.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:db35424e248d13afcd96bba091df922d7efb12529c2bceaa41a0df2b52572987
-size 5942
+oid sha256:d532475b85c97d3b95a970fdd3e22477fe9f8c28e67b16e1a08ac8013f5ceb54
+size 6051
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_ShyEmbarrassed.uasset b/Content/Game/Blueprints/Girl/Rita/MP_ShyEmbarrassed.uasset
index 71df25f..8b1a0e1 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_ShyEmbarrassed.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_ShyEmbarrassed.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8d46b6272ac3eb80ad569997d0c6790dfb2c72beb48550b6e9a2ae9ca91ec376
-size 6940
+oid sha256:23abee11b5ed249e47b18675ea1f6342a786c5ba517f824e5164229247ae6f51
+size 7070
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_Smirk.uasset b/Content/Game/Blueprints/Girl/Rita/MP_Smirk.uasset
index ade08e8..12e8942 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_Smirk.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_Smirk.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:774bfff933051c0b1dbe3c003c197ffbcc0d9ed5ffb35a804a9c48766b06d9b2
-size 6051
+oid sha256:76b40aea317fe3f79f2eb36f59389d01446188959fd18498b5a0a5d74914a32d
+size 6473
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_SurprisedSoft.uasset b/Content/Game/Blueprints/Girl/Rita/MP_SurprisedSoft.uasset
index b0649a7..ff293b9 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_SurprisedSoft.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_SurprisedSoft.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:194925c5aacaa868d616e1e70fca3076991d117efba731298a2a722cbd1b1e68
-size 6197
+oid sha256:03a7ca21bedbc2bd259e2ea86067bd1e8bd048873fe303079081afabecdaf252
+size 6302
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_Teasing.uasset b/Content/Game/Blueprints/Girl/Rita/MP_Teasing.uasset
index 25e617d..833556b 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_Teasing.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_Teasing.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8c78ac92fb8001f69a61fefe32a9ea9bb7611e72bc67e3e035f6ee66eb695ce2
-size 7354
+oid sha256:ba4ab9f90fcdefe157c0dcde1e368fae130511f81ef835c99968bc0027d239b3
+size 7457
diff --git a/Content/Game/Blueprints/Girl/Rita/MP_YandereSwitch.uasset b/Content/Game/Blueprints/Girl/Rita/MP_YandereSwitch.uasset
index f73dc2b..a96bc90 100644
--- a/Content/Game/Blueprints/Girl/Rita/MP_YandereSwitch.uasset
+++ b/Content/Game/Blueprints/Girl/Rita/MP_YandereSwitch.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:76aba75b0d51c48b039a4ac0bfd575b23af345c4ed3c85340d5f702c581601a5
-size 7182
+oid sha256:6d99153a12c81c892b2baaec77fe86994b82beefd180fe7122e1113e8da45db4
+size 7719
diff --git a/Content/Game/Blueprints/LLM/Providers/LLM_DeepSeek.uasset b/Content/Game/Blueprints/LLM/Providers/LLM_DeepSeek.uasset
index d8cf39f..11479f6 100644
--- a/Content/Game/Blueprints/LLM/Providers/LLM_DeepSeek.uasset
+++ b/Content/Game/Blueprints/LLM/Providers/LLM_DeepSeek.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9c49678d9d0e8b497be0b07ca2f9ab9385e2e47799766dacd0a3ee2ad5829f57
+oid sha256:4fa79f0f507a69cde44304c36553b0cadc806a06f4dbf8ae7316739433eb9f52
size 1612
diff --git a/Content/Game/Blueprints/Narrative/Identity/ID_Maria1.uasset b/Content/Game/Blueprints/Narrative/Identity/ID_Maria1.uasset
new file mode 100644
index 0000000..d4cc293
--- /dev/null
+++ b/Content/Game/Blueprints/Narrative/Identity/ID_Maria1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f16884010fb66abf7e36594045c799ffa1d1f8c7c99af5def2e2346f88b2509f
+size 50578
diff --git a/Content/Game/Blueprints/UI/WBP_Begin.uasset b/Content/Game/Blueprints/UI/WBP_Begin.uasset
index 273b96a..594c380 100644
--- a/Content/Game/Blueprints/UI/WBP_Begin.uasset
+++ b/Content/Game/Blueprints/UI/WBP_Begin.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:06cc0c88d219ff8bd0cfc0e9fdf17049766584fd471deaf48b7afbe8af0fb00b
-size 126768
+oid sha256:f6a109c429571b1a1762fa36ef87c7f1b559ffcd9d4b391aeb6aaf10a1048c6f
+size 159636
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo1.uasset
deleted file mode 100644
index db03250..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e911adb11a58bf08db86c548b18df69bcd1b8f9dbb86707edd30a487e25fa775
-size 470946
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo2.uasset
deleted file mode 100644
index bc5d800..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1c3d946340810d6b73e70a755ab080b0b3684c422179df1a933be8f56bc90b74
-size 471150
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo3.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo3.uasset
deleted file mode 100644
index d13db11..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo3.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9b751048d1de63e04c8613517eb91bcc94c1acfc551dfe301961b98ea8300ce4
-size 684603
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo4.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo4.uasset
deleted file mode 100644
index 59e6f71..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Combo4.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:05ad9e53247f8ccbaa15a7285bd4e58eb457a4eb39dbc859e51c537962297665
-size 542172
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_ComboAll.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_ComboAll.uasset
deleted file mode 100644
index 009d387..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_ComboAll.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:054b13b020064d5a2f41e0109ed36042fe6cf886ca156ff912f3395e7bbd76cf
-size 1040551
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage1.uasset
deleted file mode 100644
index 2c55226..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:dbfe5ce55cb855e43bfffe68b451e687ea97d011e32a8a7891bc38ac05c13f0e
-size 392794
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage2.uasset
deleted file mode 100644
index b0936b1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e0f036c6a696b2da06b4b096875f3c121232113eb472a9273476d4a8c1d56690
-size 446204
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage3.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage3.uasset
deleted file mode 100644
index c546ee2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage3.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3dfdb2d5e3145fe9d69c7c5e07c70a6c1074bfd8f59e49619130c09f1deca1ca
-size 584927
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage4.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage4.uasset
deleted file mode 100644
index 36a01ae..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Damage4.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:592f95b82e573e53d8d380df139fafa890736bae462227747a242437ccdc34da
-size 466466
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_DamageAll.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_DamageAll.uasset
deleted file mode 100644
index 005259f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_DamageAll.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2d389709ab240d6aa451298daa82873a006500de43e991b3544598f284532604
-size 1039834
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Idle01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Idle01.uasset
deleted file mode 100644
index dce3422..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_BareHands_Idle01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a67bd606542d2fe7faf799eb65e6d49f10e30b1b2730c297fb819bafd89e0c0d
-size 613292
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_ChargeAttack.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_ChargeAttack.uasset
deleted file mode 100644
index be5199c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_ChargeAttack.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:abacf60ce5be1df6c72319b95a2709a11b00b8364222f9b1790d5d4682cfa590
-size 862736
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo1.uasset
deleted file mode 100644
index 4db3d70..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ea2d253c28937ec5b098637f5c6aabe91734dc350816171c628c181113933257
-size 542268
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo2.uasset
deleted file mode 100644
index ce46547..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bbdeb96d0c2a3c296b2300a40378f5f778afde3978a974362d1467db57893ca2
-size 470756
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo3.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo3.uasset
deleted file mode 100644
index 8fa9f02..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo3.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:99ab2f99b994e6682a7ca215d94378f6d513fe07069c360579f2377af3df4ac6
-size 506417
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo4.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo4.uasset
deleted file mode 100644
index e58f2a9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Combo4.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:912460908f32423329ad9d5dbb7813bbee2d4a04126e70c61dd639d913bd893f
-size 541579
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_ComboAll.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_ComboAll.uasset
deleted file mode 100644
index b8c9d58..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_ComboAll.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b2dfd467c5269f0295378fec7ab15c149ff21740e2f0faea9f03fed63653c1b
-size 986368
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Idle01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Idle01.uasset
deleted file mode 100644
index 4d63ee9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_HeavySword_Idle01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4e807e91097c33bfd62463dd511406d2fc5e846121e556d930eee1e7996de052
-size 399483
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_ChargeAttack.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_ChargeAttack.uasset
deleted file mode 100644
index e8a653a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_ChargeAttack.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a7be996345a30a2e3e36090cecda6c407c1fcd639de460dea1dcfca5843bdb85
-size 684037
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo1.uasset
deleted file mode 100644
index f297193..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:df6ffbb57dd7da9608f37e5376b7289319a660d4ad2aa70872a94577d5cb6eae
-size 364808
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo2.uasset
deleted file mode 100644
index 6a5bde3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b66d6f0c64d96f2719e1e0bfbdd01cc7f76718e91570b4e078bb9750caa59ba
-size 364553
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo3.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo3.uasset
deleted file mode 100644
index 108ce12..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo3.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:88a2388af9786b0965ee3c4a473b258a4c3feef39e54fb525cd62b2d0c72d280
-size 435835
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo4.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo4.uasset
deleted file mode 100644
index 67ab84b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Combo4.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e1e17d028d624ec43bba8dace6c735fabd748f57ff3e56e51c910260fe57badd
-size 435711
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_ComboAll.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_ComboAll.uasset
deleted file mode 100644
index b124594..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_ComboAll.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:15eed4c08a0e61b81808127716f6995b70c116b3d299d1446e7889a8ea934a44
-size 677249
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Idle01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Idle01.uasset
deleted file mode 100644
index a1fd8d2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_OHSword01_Idle01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d94a6c18f305c944048827344cb26cd126c45b207095e38b72d71d58f5516aa6
-size 400413
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Idle01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Idle01.uasset
deleted file mode 100644
index e7bea35..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Idle01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:92b786553d0dba53df5a41ee148689c18e2f501b9fba4949e47ea4f2b55fd7c6
-size 399606
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Awakening.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Awakening.uasset
deleted file mode 100644
index 329f915..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Awakening.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3cb7cbffbf43bf8ad5266ec7f165d2af18a590bb51443738c30bd3b00a87743e
-size 1609521
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Impact.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Impact.uasset
deleted file mode 100644
index c36f5ef..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Impact.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6fcdc802908a113a517b62eddddbfb4f3787f7d2fdad69e1ccba42cefe0628fa
-size 933376
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Recovery.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Recovery.uasset
deleted file mode 100644
index 499fe95..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Recovery.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7c2af5ec98f14f37359db392716725456342f7807cbd2523c24216433881b301
-size 612876
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Shot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Shot.uasset
deleted file mode 100644
index ddfe7cf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Shot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:500abf1478c24623a17ec71c82b98840cc3166102edd20d7a253b5bcddf246c6
-size 719773
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Unexploded.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Unexploded.uasset
deleted file mode 100644
index 5293a73..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Combat_Witch_Magic_Unexploded.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4dc490ee521cb6e90a578bcc4885d301d5b0b5cbe6b35b5d206f40beec0ac9b9
-size 470786
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Entry.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Entry.uasset
deleted file mode 100644
index f7dd52f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Entry.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8caac3bb2db49495d4ecf346e106d5235a6c8235ce8228d62c06d67825a342e6
-size 327019
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Exit.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Exit.uasset
deleted file mode 100644
index 256e52a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Exit.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:73b6dbc6280a76f5b03be40185c9e5939527eaac51f058a8848b31b17b852f7d
-size 434705
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Idle.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Idle.uasset
deleted file mode 100644
index 58652bf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Idle.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:561d4def759d6661cf9d50bd16bb6f2583e34e58aaeb2d12c1d9f2276754eb42
-size 398255
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnLeft_180.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnLeft_180.uasset
deleted file mode 100644
index 556f2bf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnLeft_180.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:328f57a98c56f8f22f9fcd80b056a693c84a4de655d57b1313fc40e9efa06038
-size 398275
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnLeft_90.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnLeft_90.uasset
deleted file mode 100644
index dd0daa1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnLeft_90.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:661a73808dbcdbff801ecd26c740dac4482acd911a2396c8de14b88cac19ccdc
-size 291867
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnRight_180.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnRight_180.uasset
deleted file mode 100644
index d29e62d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnRight_180.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c12d0ae42ff0f60b191bd4e5e99acbe6e6344f5351bc0eb552cbf561d816bb0e
-size 398224
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnRight_90.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnRight_90.uasset
deleted file mode 100644
index fb8e2f5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_TurnRight_90.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a6de202693413711ed7fdb6d74a217864b8b932829a4749b7f097319e99ff26c
-size 291679
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd.uasset
deleted file mode 100644
index bb3abb8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8f93b9b1063ac0030f688cc474e684feae08c8138d5d973e8fb37f27971d5043
-size 220029
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Pivot.uasset
deleted file mode 100644
index 3a309a1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1cf7757e25940a31c70714131359bcbf64dd08c9b7b7657622f585589e222c5b
-size 433727
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Start.uasset
deleted file mode 100644
index fd20435..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c88e00d1f60082988562af7d7a891862fa340a63713f98d2a6de47510f131bc9
-size 327052
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Stop.uasset
deleted file mode 100644
index 1d56982..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Bwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a42fa1f498ae593902890f02fa05a82cafcdcec52e45d6a523775238f69fd998
-size 469096
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd.uasset
deleted file mode 100644
index 33abdfa..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:af0f5558e9ded9a226f702777429c08744ebd02b44ff7aa1cc13656b641f7f3d
-size 220336
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Pivot.uasset
deleted file mode 100644
index d6d1c61..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7141ef580aadc45695f17ad490430d8a633260856522e3038e2f94f7224af9ab
-size 433840
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Start.uasset
deleted file mode 100644
index 7f76d37..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:117d8f267080a02794700aac12d2e0b88418385d30576790da8b21e77c007071
-size 327050
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Stop.uasset
deleted file mode 100644
index 9e80aa8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Fwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4ba2f20c615ab27d7bbaca99cef6112c0559f4d6580685d1b1a0a5f654d1601d
-size 469520
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left.uasset
deleted file mode 100644
index 8ba392b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e17f89b701ec87523a8b6bf8e03d2d0a9eb3e2cd7425d4cb2070d67cf6994efa
-size 220435
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Pivot.uasset
deleted file mode 100644
index 722d326..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9311e2ae80d938156b1ac28b193214b8efd2fd541ca57b8ff3ac47e0aa79bda8
-size 434083
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Start.uasset
deleted file mode 100644
index 1424ad1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6a9a68cfc6d753535e00ca75491fc96c66748b3290084333ea5753f60d4422bf
-size 327287
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Stop.uasset
deleted file mode 100644
index 79e3b94..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Left_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ecc10844f7399704b28eb5d9f5aebf3dfbacfc48442b621018a01385c3261ad3
-size 469327
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right.uasset
deleted file mode 100644
index d9639cf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e003646bee01392e1b122ab29c800a8791f0eb5f5f3c3664899f078b5b187cb9
-size 220237
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Pivot.uasset
deleted file mode 100644
index 32f586e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ad2b48387da85d2e7e90e4e335f1da32438a32a0ff557e036dfd6e0f66a075d
-size 433863
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Start.uasset
deleted file mode 100644
index dbdd29c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:43c0236d7f705c1880f3cd7427ad0b994fa323cc22ae3f0995f796733e204395
-size 327317
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Stop.uasset
deleted file mode 100644
index c5211e9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Crawling_Baby_Walk_Right_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ea0bc662448cc144741eeeb348db582ef55cf15447563b2c892a96f65172f5ac
-size 469267
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Bwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Bwd.uasset
deleted file mode 100644
index c96dddb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Bwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:29929db5a9deffd5bfcda1741f874e7aefd196dd5244619aa99aaa81e43c44eb
-size 148898
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Fwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Fwd.uasset
deleted file mode 100644
index f94e99f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Fwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1bea67f23c007986e45ea5a438d1e4e01f937921428473bad8b2d5bba76b0ed7
-size 148850
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Left.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Left.uasset
deleted file mode 100644
index 32faf01..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Left.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fc5e84058d8cae152e3b5a190517c83604f2e76d1c553e92a63aeb75aa7b8e84
-size 148930
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Right.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Right.uasset
deleted file mode 100644
index 8004a7d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Dash_Right.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7df64024912dc70f4661ee12be16f05a6c49d93c3be816284f5cd58a57b73da8
-size 149064
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Death_Ground.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Death_Ground.uasset
deleted file mode 100644
index f468def..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Death_Ground.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:32da6f7f5e04b6c3f3fda181a24cf3819368e971815aacdbe68ef54a2419d9bc
-size 399366
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Death_Underwater.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Death_Underwater.uasset
deleted file mode 100644
index ca650d0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Death_Underwater.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d21f2cfd36584217e71a922c630a3d3a6dff2e477699d6f620c3caa34cac2159
-size 1146453
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Fly_End_Witch.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Fly_End_Witch.uasset
deleted file mode 100644
index 7fd4640..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Fly_End_Witch.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:289c905397c15edce21d69326de2c066d88b17766e6dccdd8fbcaae2612ca9e1
-size 328437
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Fly_Loop_Witch.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Fly_Loop_Witch.uasset
deleted file mode 100644
index b6952a1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Fly_Loop_Witch.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8b648ae99190bedb5804bc2ec4833250364be6594db52fba02310e1231ee1bc5
-size 292391
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Fly_Start_Witch.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Fly_Start_Witch.uasset
deleted file mode 100644
index 1f8ff0a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Fly_Start_Witch.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ace667a24f0ec46d345408f31e6e06291ec0dcc3fdacc4a6bf60bf68f187dd03
-size 185661
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle01_breathing.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle01_breathing.uasset
deleted file mode 100644
index c5f90fd..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle01_breathing.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d41672df81d3e4066d9d86d1c4fc8c7b93a77c61a7e4248d1eada98938cb3a4a
-size 795185
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle02_LookLeftAndRight.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle02_LookLeftAndRight.uasset
deleted file mode 100644
index 316bf73..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle02_LookLeftAndRight.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:01d84dda9feaf5396a176965029ad6fee6ca24fd5f00601068422c31bebf5563
-size 723090
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle03_LookAtHands.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle03_LookAtHands.uasset
deleted file mode 100644
index 75fd30c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle03_LookAtHands.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c4a2046aa398dcb55be687afb8e643df4dddeb5998b21a52fba3c1f1822fe8ca
-size 1079031
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle04_LookAtFeet.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle04_LookAtFeet.uasset
deleted file mode 100644
index 6ec81a0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle04_LookAtFeet.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0606d3e59636ffb08ff6e97a351475560382a7da8bab010630fc83344ab894e5
-size 687621
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle05_Stretch.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle05_Stretch.uasset
deleted file mode 100644
index f280661..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle05_Stretch.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:79e6b7800b09fd40ee278c25d11db1a4886d2ad37e3b188a927c4000c0a9f606
-size 758495
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle06_JumpAround.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle06_JumpAround.uasset
deleted file mode 100644
index 70fc504..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle06_JumpAround.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b7cf7bd3a73543631b6d35bbae226c354f4c82aadcd5d7023671b95923e8e928
-size 651804
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle07_SpinningJump.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle07_SpinningJump.uasset
deleted file mode 100644
index 4cf13ac..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle07_SpinningJump.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:848a211d0f3d17ad7aa430c3f4f25c0df65a8c345c9d5574c657847e076d8345
-size 722683
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle08_ComeUpWithAnIdea.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle08_ComeUpWithAnIdea.uasset
deleted file mode 100644
index 2656cd9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle08_ComeUpWithAnIdea.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:90ba83b64e74ba684b31da4163f7b17cdb9c2c0b2a3357a6cce58d9f79c58cb0
-size 1079023
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle09_Waiting.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle09_Waiting.uasset
deleted file mode 100644
index 0932482..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle09_Waiting.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:72fe1d837920c536b019ad7a27fd870093d7d70c39a35c5001a84864b50d727d
-size 723620
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit.uasset
deleted file mode 100644
index b839227..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e1ec2eb9ad091eb8bca821d23de98c1e740e9e9c71ed1a9741bc228fca5e814d
-size 1079329
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_End.uasset
deleted file mode 100644
index 23a3ab9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fc8b610fd075738d0434ccc4fe9df702e386a4a314edde30553d751a0e69fa8d
-size 506945
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_Loop.uasset
deleted file mode 100644
index a6262db..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:518e819db621103e7f7655401e50c290963b3503268af873d69443f9abd146cc
-size 613393
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_Start.uasset
deleted file mode 100644
index f487e36..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e66ceb5073731ee26c043a91b84e1ac4cbc9c5816e521ae068bc4db551346e6a
-size 400030
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_to_Idle46_SitFloor.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_to_Idle46_SitFloor.uasset
deleted file mode 100644
index 67c7f21..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_to_Idle46_SitFloor.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db7fecef4baae5876997fdfd0ea8b195a683c60359a1db9f7f6b14ff8ac30da2
-size 293108
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_to_Idle53_Seiza.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_to_Idle53_Seiza.uasset
deleted file mode 100644
index 734d375..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle10_Sit_to_Idle53_Seiza.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d54735ae73be457b0ac9fe617333f9d1942a070e23136dd9351b5e925952f09e
-size 399932
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle11_LookingBack.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle11_LookingBack.uasset
deleted file mode 100644
index b7db8d6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle11_LookingBack.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:816446b93236dc98b55d0d776c239f5231b7f7969447d687366719411198a849
-size 969304
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle12_LeaningForward.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle12_LeaningForward.uasset
deleted file mode 100644
index 4331d63..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle12_LeaningForward.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:93f966091f101488182351447d23553f7c335fc4606eb7e5fa8796afa095f20f
-size 969059
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle13_Dance01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle13_Dance01.uasset
deleted file mode 100644
index 833af96..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle13_Dance01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:35da9e375f80da7e880e7491449ec69860de519c916b80ba8eb1c1d4d8667b9b
-size 969059
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle14_Dance02.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle14_Dance02.uasset
deleted file mode 100644
index dcdd159..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle14_Dance02.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:78eba486b8825bb0a9d961345e7905a0dc32752af9a03857d89aee4eb9643967
-size 969061
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle15_TieShoelaces.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle15_TieShoelaces.uasset
deleted file mode 100644
index fc0203c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle15_TieShoelaces.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1b33a486c62673cd8b9ef193a3d9314d54598bbe2d2553eeb7c9e162f58b14da
-size 968615
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle16_WaveHands.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle16_WaveHands.uasset
deleted file mode 100644
index 763d4d7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle16_WaveHands.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:03ddff9af90f970b3a051bf8cb4eb3ab048006ff774438cdbac868f65cad61cd
-size 933443
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle17_StumbleAndFall.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle17_StumbleAndFall.uasset
deleted file mode 100644
index 10b2490..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle17_StumbleAndFall.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:339061eb9ca8f9b67f3042f3adaaf37ce35fc70c60af837df3a3bc8a9e7c8390
-size 1075587
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle18_Shy.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle18_Shy.uasset
deleted file mode 100644
index 9f93c6a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle18_Shy.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0c78b9895153a4f0d01de6e430652165ff16db822422ff6797b8c799910d1654
-size 1004890
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle19_ShyRefusal.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle19_ShyRefusal.uasset
deleted file mode 100644
index ffb192e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle19_ShyRefusal.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b94dd95a435e286e9dcb3282e784276e7f9f5f63c6f12b941a33f97a726ca06
-size 1254026
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle20_TriplePose.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle20_TriplePose.uasset
deleted file mode 100644
index f7d0a9f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle20_TriplePose.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3aa0e72b78a66ac135e7c29f04a0ba28780d671193e2bfeaae834968e56c7894
-size 1093908
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle21_HighFive1_1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle21_HighFive1_1.uasset
deleted file mode 100644
index 4014107..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle21_HighFive1_1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9508a9064a933ccc9f8c6485c62bb7f4ef047a9582616c5aa6b7eca53baa7719
-size 506248
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle22_HighFive1_2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle22_HighFive1_2.uasset
deleted file mode 100644
index 3effa28..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle22_HighFive1_2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0fa136f70032cbd55c62736364fa658988cab3767f3d3a0dff9c8300c29e5542
-size 506112
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle23_Dance03.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle23_Dance03.uasset
deleted file mode 100644
index eacab2b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle23_Dance03.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c23506f6d7807f616a7f9ea1637709190a9349f1c3c6205712f2db6d83d1a38a
-size 1040196
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle24_Dance04.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle24_Dance04.uasset
deleted file mode 100644
index 45fdd4b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle24_Dance04.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db5394e905e520ca5ab693ea4b31759c4608507a8f255c573dc241022002f29d
-size 862309
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle25_Cheers.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle25_Cheers.uasset
deleted file mode 100644
index 9dcaa80..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle25_Cheers.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:628e59b8088b5ae12447cf8495c0a285bbafb883f851b56c9fddcd8ec44476b2
-size 2037195
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle26_Shout.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle26_Shout.uasset
deleted file mode 100644
index ac41049..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle26_Shout.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f75fe0786900ce098a30fb26819f06a1e5cf72854f9240a3688ac5a2dd64fd1d
-size 969092
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle27_Angry.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle27_Angry.uasset
deleted file mode 100644
index dd5968b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle27_Angry.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4bd50a532c920284171e41be2cec9ad1f0077d5f3c3296b09c087810f0e0d5ed
-size 862608
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle28_Laugh.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle28_Laugh.uasset
deleted file mode 100644
index beb1922..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle28_Laugh.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2aa3a0e66bdc3aadf151c932021f423048933e396259eb237bd4133181f76b65
-size 968958
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle29_Surprised.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle29_Surprised.uasset
deleted file mode 100644
index 51facc5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle29_Surprised.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e451f552cdc72da4e8d401e1e1d7e3dc1a94abc7b6392530aa7368c5fc6581bd
-size 862491
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle30_Stretch2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle30_Stretch2.uasset
deleted file mode 100644
index 018de7d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle30_Stretch2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ef75328c0c52ce5451b31c9ea144b7b36954a450934c60c34414bc8da1982286
-size 1752452
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle31_PickUp.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle31_PickUp.uasset
deleted file mode 100644
index a7ef5c1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle31_PickUp.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:30b8b2cb2fcf4d16060cfc5ed0d731e1153a328eb9f3d0a02c1ee87fa6de921c
-size 861651
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle32_LeanAgainst.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle32_LeanAgainst.uasset
deleted file mode 100644
index 37560a0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle32_LeanAgainst.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c373db6160cff224c1ba359cefc238186a7ee3e7aafcc932d0ca4be31617212b
-size 969018
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle33_Hug1_1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle33_Hug1_1.uasset
deleted file mode 100644
index 1dbb202..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle33_Hug1_1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:57d1bd3a75592fc538d80d7ee3c565affa577ba1dfd65a36ea4964c18f568160
-size 720102
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle34_Hug1_2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle34_Hug1_2.uasset
deleted file mode 100644
index e97bf1e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle34_Hug1_2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4326122854233664fc605d7cadfbaa6d7b98e574e1bc2bce4e74ce5cf861d441
-size 720093
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle35_FingerSnap.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle35_FingerSnap.uasset
deleted file mode 100644
index cb3c129..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle35_FingerSnap.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:005f018d845826c12bb32d1d8e9acf444223bd382cd0cc4f3efab5f56d60d094
-size 719797
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle36_Yay.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle36_Yay.uasset
deleted file mode 100644
index cb91714..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle36_Yay.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2964df23b6df1dd0039b4e8677471ae5982642d46e3d64986f232ab0fc79a0dc
-size 684458
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle37_Tsundere.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle37_Tsundere.uasset
deleted file mode 100644
index 2e49b5a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle37_Tsundere.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:38801d08f6d1fe16ab0004195327e59dd62cce43e8599572fd67f8879f7d80a1
-size 969052
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle38_Cry.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle38_Cry.uasset
deleted file mode 100644
index 6333a0f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle38_Cry.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e76b354692be9a58e9e26e7026678c564dc65c9f665bd91bcb5bbfff89d49a1
-size 1075685
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle39_CuteArmUp.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle39_CuteArmUp.uasset
deleted file mode 100644
index 412197f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle39_CuteArmUp.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6c8c7942e5aaed6507d58b009a5d0c2de196d2f3fb11dca6331136925a386943
-size 862360
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle40_CrossLegs.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle40_CrossLegs.uasset
deleted file mode 100644
index b6d3f09..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle40_CrossLegs.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:78848345755d6243707ffbf7df59d015ea6a18b0a9c34350f43f33fdf1bd8ecf
-size 1324893
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle41_CuteShyPose.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle41_CuteShyPose.uasset
deleted file mode 100644
index 6232e4d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle41_CuteShyPose.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2a011d43729b0fed5f60c83b22a9477aa5c29c6c3858999279273984adedbe3c
-size 968958
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle42_Taunt.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle42_Taunt.uasset
deleted file mode 100644
index 5216f35..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle42_Taunt.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:701a698be0ce471e55cd2edd0e07df891175ce9a234d18a1e89bec7ed8df0230
-size 826354
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle43_HandOnHip.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle43_HandOnHip.uasset
deleted file mode 100644
index cd458c2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle43_HandOnHip.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:35689983a0fd6df86ecc2fc6193d237a4a97f314310c9223286e7e70ca12604c
-size 826900
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle44_GreetingBow.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle44_GreetingBow.uasset
deleted file mode 100644
index a2c10f0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle44_GreetingBow.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:407ae4cd0d54b03be54e1ac96a837a324ce1c655cee614e6da33fe0cedcae7c7
-size 826452
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle45_WaveHandSlightly.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle45_WaveHandSlightly.uasset
deleted file mode 100644
index 97a104d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle45_WaveHandSlightly.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1d59c073fb064ec57d0816d3e491801436696ac9ee6958f5e4614dcf532afe33
-size 827031
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor.uasset
deleted file mode 100644
index 3f04dbd..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:15d6f32d715a336f92e663933d607188000cb6a5048ad958e9d1dbac8e451a1e
-size 1217921
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_End.uasset
deleted file mode 100644
index 4ea3c4d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6b1798c28f9ea6b45be150fc69f60482e80f991c7a0b153d6fae714b1c4f7087
-size 578471
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_Loop.uasset
deleted file mode 100644
index 8e96b5b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:be17937622bf7e1a0b9e096fc327f9260313add71771b1ff46d02aa02e89c0d8
-size 898226
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_Start.uasset
deleted file mode 100644
index b649dc7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d3aee9fb8aa06a8017e4579c70f338dcb4990f945c9c2a23173c98224c628769
-size 364191
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_to_Idle10_Sit.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_to_Idle10_Sit.uasset
deleted file mode 100644
index 2acd55e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_to_Idle10_Sit.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e9ebef87f707c9074cf7d02df43e281f6d0312cb02ccef1cb8518600b0bacff4
-size 293057
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_to_Idle53_Seiza.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_to_Idle53_Seiza.uasset
deleted file mode 100644
index 40f1d45..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle46_SitFloor_to_Idle53_Seiza.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:edbd6c8806d34f0df208558835da65bc326072b4386dae83a83deedcf4b326f7
-size 399906
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle47_Scaring.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle47_Scaring.uasset
deleted file mode 100644
index c056eb6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle47_Scaring.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:89aa04a65c37295c9c70f037fc477d7c89d9360d90596cd5fffb820ce92518c2
-size 898001
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle48_TriplePose1_1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle48_TriplePose1_1.uasset
deleted file mode 100644
index b109787..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle48_TriplePose1_1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f4b79f34f60b9af1d6d005d5c3683672ec491f1c5bafe75e6b50ea4c516c7730
-size 1075830
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle49_TriplePose1_2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle49_TriplePose1_2.uasset
deleted file mode 100644
index f0f7cab..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle49_TriplePose1_2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b9b8ac4cbf2c7868fa624d97a29e1e7ce2df16765df4fa00600ede2b602cdc0f
-size 1075870
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle50_StandingTalk1_1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle50_StandingTalk1_1.uasset
deleted file mode 100644
index f68aaff..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle50_StandingTalk1_1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:efb8dbdcc70cc2b344029cf6bf7b3ab79581f48343be84438c5ed7ac7befdd9f
-size 1503248
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle51_StandingTalk1_2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle51_StandingTalk1_2.uasset
deleted file mode 100644
index ca778c4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle51_StandingTalk1_2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c7a24423c83a8100d6a78310a1c8aad27fa1b6416cc69f6a085be14fd85d24c9
-size 1503278
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle52_Curtsy.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle52_Curtsy.uasset
deleted file mode 100644
index b595d36..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle52_Curtsy.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:39dc546bbadbea76f48aa2eb1749176662e8c8265c7f52e35df47b4b28fc98ac
-size 790741
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza.uasset
deleted file mode 100644
index 2ac7981..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:55c1babc2d1523918461e414f6f582496a0efb118571b4be215c326473acd234
-size 1573535
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_End.uasset
deleted file mode 100644
index fc84692..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4e770c09e0a055f1ab48e61f9f824cec7fd62088a04fbd52bee75ec72a7b451b
-size 578027
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Loop1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Loop1.uasset
deleted file mode 100644
index 66e3cc2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Loop1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1e84cbe1941f6b401c4224647169f069ea74243aab32a1fa0d132f0ad1e0ac1c
-size 898306
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Loop2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Loop2.uasset
deleted file mode 100644
index 9175af1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Loop2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f30fe3c7d58a3b6d0e8cd07c8a2e5c79ec68a5d06a6468cf96fce71c83ac9e18
-size 933411
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Start.uasset
deleted file mode 100644
index 2e41ec9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bfc76898b543edf1e2dc7a219abc27a12b8d6aaa6b1845e045166daaf4cc8cbb
-size 542274
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_to_Idle10_Sit.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_to_Idle10_Sit.uasset
deleted file mode 100644
index cfea8ad..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_to_Idle10_Sit.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a264eeba6a027004aa414afe3af17f3ca8036ac1e074cb9b5201370bb0116f31
-size 364204
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_to_Idle46_SitFloor.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_to_Idle46_SitFloor.uasset
deleted file mode 100644
index 16ce4f9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle53_Seiza_to_Idle46_SitFloor.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2a962ca4d467da384e17d302ad4e60091df6ed5d2bdf29829da63c4c54e2c8d4
-size 399906
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle54_CartwheelAndBackHandspring.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle54_CartwheelAndBackHandspring.uasset
deleted file mode 100644
index c737d55..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle54_CartwheelAndBackHandspring.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:07da29e2108ac01c74082eea78c07a3fb676d00a2f6f4e157afd00b1d030ad0c
-size 613008
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle55_Backflip.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle55_Backflip.uasset
deleted file mode 100644
index 2f98ccf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle55_Backflip.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:aee6ded65249aedf6595b793335d13c810aba03c81606f682d52c3d9ba31b420
-size 505643
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle56_Handstand.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle56_Handstand.uasset
deleted file mode 100644
index e2ac690..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle56_Handstand.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:be25e939453e70234f3aae86c64dfc5536b25340bb626ac45828357b53f3bd9d
-size 1431778
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle57_Dance05.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle57_Dance05.uasset
deleted file mode 100644
index ae0aa75..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle57_Dance05.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0bd6383a7cf25161d01245e4f40661a2f68cb53c1415ece9b1b673298894f837
-size 1360439
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle58_Dance06.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle58_Dance06.uasset
deleted file mode 100644
index 045cd6f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle58_Dance06.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fd90714b0e1d3b3fcc36af4d2b9a094657083d6d19487f95a0ed3054ffc64307
-size 1396542
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle59_Kiss1_1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle59_Kiss1_1.uasset
deleted file mode 100644
index fb19e04..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle59_Kiss1_1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e577d2967cc9bfe490e16d12b8b1bfd974bf401700f79d48a4aa54d595623680
-size 862545
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle60_Kiss1_2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle60_Kiss1_2.uasset
deleted file mode 100644
index d45dc87..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle60_Kiss1_2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db21eae883827bab83b61756107321e24620fc332f7fca7af724f7063f6568ee
-size 862546
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle61_RockPaperScissors1_1.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle61_RockPaperScissors1_1.uasset
deleted file mode 100644
index 4402e82..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle61_RockPaperScissors1_1.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:da04c1133e53ffd1af82804316bfda9a7913d88d7be992aa2afd2dbdebf5056d
-size 969284
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle62_RockPaperScissors1_2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle62_RockPaperScissors1_2.uasset
deleted file mode 100644
index 89e8ed0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle62_RockPaperScissors1_2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4307f071fdb98fe8527a78b3b42606a86a62b69e9e6ef3bf03f9e11cd2a41a72
-size 969016
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05.uasset
deleted file mode 100644
index 1d61c87..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1238a313431de700593e740797cd9edb568290c7f8af956e22941df5a1cbeaa9
-size 614135
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_End.uasset
deleted file mode 100644
index c8f5b99..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0eb92de86de38b85e76021401a1a8bf9fbf611ea116c9567af6f31e64542cef7
-size 286624
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_Loop.uasset
deleted file mode 100644
index 5c4100e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3e38103f0a850b0e652263bdc4637403ad1e04df38ad6cb50780dc99df3a6bdc
-size 165596
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_Start.uasset
deleted file mode 100644
index b34f0b4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cff9491e55ee1d3f9328d9003ec142f2d1e0b2eb51b0944816822c1589b1c134
-size 151097
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_to_Dance06.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_to_Dance06.uasset
deleted file mode 100644
index 6745240..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle63_Dance05_to_Dance06.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3ab0f369e0aed1907df7108b8c9048234b8846e9a9eecbedfd12031d4c268cd5
-size 165319
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06.uasset
deleted file mode 100644
index 58a590f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0fc3f8e4f0f5c45e6160e2dd96b18f8c5cec95ec3013e0a7f9f4a77425ada63b
-size 613782
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_End.uasset
deleted file mode 100644
index 81ac98f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8187440409b073f796f5632a54cc220a83604401741fd994041520f80eac6232
-size 286612
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_Loop.uasset
deleted file mode 100644
index ce2b817..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b5aebcd76db2266192a1c1a392b25261f8fc0f3602982f3e1c096500cc98cd04
-size 165361
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_Start.uasset
deleted file mode 100644
index 8f84b7b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6612987c7d61695cc5e58071a20b1c93f19cf28a8db368000b7e608b5df86056
-size 151218
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_to_Dance05.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_to_Dance05.uasset
deleted file mode 100644
index f4e6253..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle64_Dance06_to_Dance05.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c5a29ac73d02abdb2f68b6e6722b1d0b552f5349437f39f0df4c416461e53838
-size 165627
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle65_ThumbsUp.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle65_ThumbsUp.uasset
deleted file mode 100644
index 78ae996..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle65_ThumbsUp.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:edd8e662118041b9e6bc56f8df3b8c87fca72c79cc15044d8d86f776dd25760b
-size 755666
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle66_JumpForJoy.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle66_JumpForJoy.uasset
deleted file mode 100644
index b93583f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle66_JumpForJoy.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c8dc95d42d20cb4752f09a83ccc12571c9336b73d69083ca4901ad68752c08ae
-size 541473
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle67_FeelDown.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle67_FeelDown.uasset
deleted file mode 100644
index e3da68e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle67_FeelDown.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:54f1a7634591d4590e735e287e4ea0ec51c3e5ff2b9cf56c415ef8cb8a8c10c7
-size 897483
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle68_Surprise.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle68_Surprise.uasset
deleted file mode 100644
index 2e98c6c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle68_Surprise.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d7ce8f75a8b8de699df05931160981d3b06422b48f4f2efb237a00934616a122
-size 541970
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle69_Surprise2.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle69_Surprise2.uasset
deleted file mode 100644
index 5bf7cb1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle69_Surprise2.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0cb14095f2109c5075891318eb39688484b0bd9fdb71948eb944a7cbd6ac7d34
-size 542226
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle70_ChangeClothes.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle70_ChangeClothes.uasset
deleted file mode 100644
index eb2f955..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle70_ChangeClothes.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5eab65e6568eaa79be322825f977d69e92d1fa68c9992b95e20ee1d16c99b63d
-size 755561
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle71_CatPose.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle71_CatPose.uasset
deleted file mode 100644
index dbee462..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle71_CatPose.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c71141a6e6efd71c1d04645bf9909f1dc1b1edc5baf61be0b9e44925777cef92
-size 613328
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle72_LeanForward.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle72_LeanForward.uasset
deleted file mode 100644
index 4546f8b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle72_LeanForward.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a5e31d34b21391a330a5d133799cc36d9e6dd1230c12d02c6a39826442b1d3b0
-size 613286
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle73_IdolPose.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle73_IdolPose.uasset
deleted file mode 100644
index a8421f0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle73_IdolPose.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f5c05922e480cf206d3f57bf635e69feaad01f4fea8a75d62330ca47037c84e9
-size 613105
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle74_Cheer.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle74_Cheer.uasset
deleted file mode 100644
index 023afe8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle74_Cheer.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:85021d14b614ea218092515eb541d9adb67a9ed345bc3d94c1efccd829eb89e2
-size 684460
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle75_Pointing.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle75_Pointing.uasset
deleted file mode 100644
index 4840ae2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle75_Pointing.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9f7fe403c92d40ba852eeec081c61ab4e404b82224d2d5cd460e547e81222f66
-size 684181
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Idle76_MotivatedPose.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Idle76_MotivatedPose.uasset
deleted file mode 100644
index c2c653b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Idle76_MotivatedPose.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fceaa1594e45d51a02ec5a277e91329e2e1baf1c26525f8ff12b6d40bee1d4aa
-size 684525
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_End.uasset
deleted file mode 100644
index d180d3d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fbf00fea6bf6af8df742dd9ace498567ce1a7a4097ceda5b088f7af0acbfefe2
-size 186737
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_Loop.uasset
deleted file mode 100644
index 9cc1f74..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e23c2006d56cea2ab081e420ed00a2531ee6300411f3819016d8d03e2dc64f72
-size 133205
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_Start.uasset
deleted file mode 100644
index deb7845..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump01_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:deb91d83a66d66906c4de7540422b9f9c0e26402ca1ea6316bc400217c8688fe
-size 186742
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump02_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump02_Loop.uasset
deleted file mode 100644
index c845827..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump02_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:60168471a36f612fb9f833b1db7b7243ac2b43f48426294b482bbc8e64c37b6d
-size 132694
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump02_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump02_Start.uasset
deleted file mode 100644
index 11c4c74..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump02_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ea32e1d351c98f644e3d383454f90497205a5c236e96f6989c9fff21c71672b8
-size 186166
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump03_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump03_Loop.uasset
deleted file mode 100644
index 2ca76b8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump03_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:62a98e8fb8acd8dfce7918fe6785604bcf83ab4c161494211d18b2d37492850d
-size 132353
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Jump03_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Jump03_Start.uasset
deleted file mode 100644
index 7bf62e3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Jump03_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0a0b1e56bdc695cb05d8bc2b4989e420f54105a9fea8858ed2d5827c8e9009e2
-size 185665
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_End.uasset
deleted file mode 100644
index ff8aa9c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:83ff0be66be92c7e2d2be025ac6bd5dafa873fba917d186da84adc508f944df3
-size 364269
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_Loop.uasset
deleted file mode 100644
index df49f1c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3768db5ddd904eb034942b7663e92a3ce2ac63ba809ff65683edc08caa4e4209
-size 1075961
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_Start.uasset
deleted file mode 100644
index 28c72ae..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Equipment_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:30b32f3c9fba2e486f898f223da1b828bb8777e85b518dae21d2608a876aac33
-size 292727
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_End.uasset
deleted file mode 100644
index 43f6b44..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:69b0e44d5fd5b6c156ddf4a9d706ca0a9d394fbc063d9422dd6dffd6b3d6f692
-size 399613
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Loop.uasset
deleted file mode 100644
index 9e5ba33..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0cf4349171be009d98bb78adeee5a0e7e48bc5a32bf53d7dbd523fa742b2442c
-size 720242
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_End.uasset
deleted file mode 100644
index 1695a2a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5b039a248fc722f9622a5ee5aa12a6993f98e4aabdba78dd03884682a3d1c36c
-size 364254
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Loop.uasset
deleted file mode 100644
index f442a73..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9f99874857192b6ad973e1b62757d66a95a24b785cdf0a3007c04153663b925d
-size 719917
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Start.uasset
deleted file mode 100644
index 9f6cb18..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:82f32a6bc5f2313a5632b51fa176da41a9e063d03d35f663d23e416056f81908
-size 292777
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_End.uasset
deleted file mode 100644
index 3113ba7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cc82aa59001856343617c2048cf9c045e091b8cf81cfc14527ecd69939993637
-size 364235
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Loop.uasset
deleted file mode 100644
index 84db9e6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a2b28796824f3c6301cae0e1c5129cbb61d2539a38c014e2f53073e61e89425b
-size 720071
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Start.uasset
deleted file mode 100644
index 555d5d8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:89ffc22307d8357354561db136ac96f712edfee8a09c4639c3e2100571b0952a
-size 292933
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Start.uasset
deleted file mode 100644
index b41844f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:128e10a1fcdc65fee720d3b0174f389b0f0b900d1cd243166cce1892632d1cd1
-size 293079
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Loop.uasset
deleted file mode 100644
index b0b3db5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:493e82bb26b50aa0a430a2e6add23b39291e815553582d550bb37db15d4ce20b
-size 221836
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Pivot.uasset
deleted file mode 100644
index af1ae4c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ef30909ceee0744eace62829e9d1d2d2d1f05d76542405b1379bc7ff666fb903
-size 471164
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Start.uasset
deleted file mode 100644
index 0550b1f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d59355a5c7e0e280f4230004df640425cf656a79ad2e3dbf3f0133d7c21bc561
-size 346498
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Stop.uasset
deleted file mode 100644
index c838daa..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Left_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ed32b1e291082bb7f47d3cc67248e6399d0f49d6ed4473a321672ffb998d3aec
-size 453325
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Loop.uasset
deleted file mode 100644
index ab0c9cb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a9a3f5ab186ce5aa2d472e0dabb313132504da02739bdf7b59a3bab7077b3c31
-size 221846
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Pivot.uasset
deleted file mode 100644
index b8692c6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a684c6a23117ed4874e3b124723228acd9e031ff475dff291ddd7843d38edbe0
-size 471088
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Start.uasset
deleted file mode 100644
index 12580db..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:67ca972ddd42c58262eadfda2a9176e326ad86f5e0ba77307d0d32a9c139c46c
-size 346488
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Stop.uasset
deleted file mode 100644
index 6d59380..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_StickToTheWall_Walk_Right_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:66be514bab2541e73285bf24aae4c48ff387a8e58640a9e0391bf2542ec29eca
-size 453346
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnLeft_180.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnLeft_180.uasset
deleted file mode 100644
index f9be26f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnLeft_180.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a7440d89759d972167f018f3bcf6ff5d5ce45096d2a23e4b666266682727553b
-size 363933
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnLeft_90.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnLeft_90.uasset
deleted file mode 100644
index 5f4be78..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnLeft_90.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f681679882b0303f690f854640130f7de12360265238629e3c27fd8603c557a9
-size 271526
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnRight_180.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnRight_180.uasset
deleted file mode 100644
index f3e6b0e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnRight_180.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9057487e90b5369218ce3d0085589aa99b99fdd6d50bd0a9a0766b1607859531
-size 363902
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnRight_90.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnRight_90.uasset
deleted file mode 100644
index 7897546..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_TurnRight_90.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:895829f6884ef4a56bc1d71ae0c517d333b6cad17adc1f0be682a5274e288b20
-size 271465
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd.uasset
deleted file mode 100644
index 18ba72b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f60ff73cdf4eb42c941f04fb862d90de41c3faf1d0ee0a2126328ce9fe82bac5
-size 221525
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Pivot.uasset
deleted file mode 100644
index dfdf42c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:82a76e72d7baaab1893dcbc3e899866d54b17841e02c0b57e2c4ee565527f9e3
-size 524154
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Start.uasset
deleted file mode 100644
index 5198fc7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6b110cd09028f3a56a4f7013b1df573c8ea140e3de385959bfa2ed2a6165ab72
-size 321211
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Stop.uasset
deleted file mode 100644
index f8763dc..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Bwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c0a4582887a1bbbb68e570237529cd995d7089236befb19a18d4bd5fe48157c2
-size 406706
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd.uasset
deleted file mode 100644
index ff99b1d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:74a12d62b94b30fdd46fa75cd8cbeadcb93e6a8d1b6570eef796e5f19b054519
-size 221596
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Pivot.uasset
deleted file mode 100644
index 8cefe19..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5947454761005f43f7c6309d8a45d4c2363b07c6681c677fa0afe5c0dbbc6430
-size 524239
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Start.uasset
deleted file mode 100644
index b0b4184..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9e70f0434309fb9a85f4cceecf671b9a91a608114bbfaa3b2b7116ac14146079
-size 321247
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Stop.uasset
deleted file mode 100644
index a6ed1c3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Fwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3f4e78672576cf12f69b8d7225115cc349931a032f1b39866fba79e88cbc612d
-size 406702
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left.uasset
deleted file mode 100644
index d1e055c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:289cfcbe4a3a2aff3ac98d1b652966072a78a353bd1ea521f57cdd47061039c8
-size 221421
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Pivot.uasset
deleted file mode 100644
index e2d4680..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:95f950c8e16a37a291c2a6e4ed18977f7cce06d2bcfa5ab5a71697ef2309a99d
-size 524068
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Start.uasset
deleted file mode 100644
index 588f9ad..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:03a91ed9918dc0ca3f5208f401264111e483c54d5ebb6495ca713ee663a4a737
-size 321344
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Stop.uasset
deleted file mode 100644
index 3f85025..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Left_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9c1c7e357f54f2ed2dfd299fd1736ac707ca9ef953f710522f0d4694a01e0f03
-size 406658
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right.uasset
deleted file mode 100644
index c440f1c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eb74e00a6e0c3bdf1bb423bcf1f344409efc65b1f79167d84426e1c9e04c7c36
-size 221479
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Pivot.uasset
deleted file mode 100644
index a26bb0b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:705aaee5d01343598ed98392ab12653a84fb0670abb39c5043e926e412bbc594
-size 524079
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Start.uasset
deleted file mode 100644
index 7d0fa7a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cbfd074eeb65e881fde086be8e969325cda625fd0cd43e53397fec7846df6439
-size 321176
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Stop.uasset
deleted file mode 100644
index 36f6ae0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Lantern_Walk_Right_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:28f55e93ed3dfaf852af159178805b2500c624060905c2d1eb71d06d6ea1af5a
-size 406718
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run01.uasset
deleted file mode 100644
index 26c4178..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3339a5c32bcaba8bc4b258117e0d496f46aa1be9e0e21ffaeadf48a7f8f85d1c
-size 157459
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Pivot.uasset
deleted file mode 100644
index 1fd9fdc..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:89de24463b144d944b1e95283e792ef0951fcadfa7f8e5c34572be5527790bc4
-size 257305
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Start.uasset
deleted file mode 100644
index 4dbdec5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7fbfb0100b7fe0b7f24d996d2cd12cdaafd71e6f62ea65c7f6360d56a3432a55
-size 214337
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Stop.uasset
deleted file mode 100644
index 9ad4263..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run01_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6767c74f774464404523c2c670b46a5fc525016c98857937f521d131d1a70d7b
-size 310677
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run02.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run02.uasset
deleted file mode 100644
index ce6f653..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run02.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4c8a1ddc485bfad0170b765d4b270fb4135875a95e98c47dbbd14671b09e0742
-size 157579
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Pivot.uasset
deleted file mode 100644
index ac8787b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db9e203245b2f9abd7a5951b6e460175e3e6b5ad317a2cc9b9e9db3b9e44c6c2
-size 257323
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Start.uasset
deleted file mode 100644
index 0d1fd67..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff9b75e9f61497e2a75ea0b10a27d61865bf09e3705455862276b50078e46efa
-size 214344
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Stop.uasset
deleted file mode 100644
index 5316a43..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run02_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:dfd1448dbf1297e31c207c451e1c523eb749f4594f6195550302b466ca6557ca
-size 310587
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run03.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run03.uasset
deleted file mode 100644
index c75630d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run03.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:afb10f35e8bab860b9c6c5ea7cbb22cb8fbe348d38da4e2fe035ecd082b9b3e7
-size 158357
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Pivot.uasset
deleted file mode 100644
index 2f7ac67..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:088d888718078aba058a8e845457deec23b88bf2c56bc399e0ad4dd5fbc2a1bf
-size 257315
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Start.uasset
deleted file mode 100644
index eba2c90..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:66b35f25661008aca30e65266e9bb54b25f4f4a2dc84290347aa9cbc24e6b7b9
-size 217878
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Stop.uasset
deleted file mode 100644
index bd7f8d4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run03_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:63f615e87b18879346fa537165de3806b8a115fcfbd2f7b0d058297be7200851
-size 307009
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run04.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run04.uasset
deleted file mode 100644
index 18c8b90..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run04.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:65aab20e6743324609649fec252579b9cba8cef84f62bdff404abe0a8414061b
-size 157373
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Pivot.uasset
deleted file mode 100644
index 650516f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b9d655b04b3f06ea6433136356a5d62fda1132322cfe22d360d3da840dcc0703
-size 257369
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Start.uasset
deleted file mode 100644
index eee3866..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8cbc091238c7758acd20abbf8e5386bb717ab5da2888cc6d3151d16157821752
-size 214044
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Stop.uasset
deleted file mode 100644
index 3c7229a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run04_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2e4154aa61b779b5aeaace6464647092208ca7dedac7110cad58961939ae0861
-size 310394
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run05.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run05.uasset
deleted file mode 100644
index fa58220..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run05.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:01fd4c1345c0258abe5a271aef457e84b573662674710827b506bb67fb01655f
-size 157358
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Pivot.uasset
deleted file mode 100644
index 728a249..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6967b10a3bee325fd78d5a544019263cc788a6cf4f4ac45af939c19cfb191d38
-size 257313
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Start.uasset
deleted file mode 100644
index c7ffb9c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f048ae4270d1fdafcd3a933a4537a56b98032abe193643a1bf8212c5ab1ac876
-size 221558
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Stop.uasset
deleted file mode 100644
index 92c85ba..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run05_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:307b8a9597e8d4120ba03acfe8772407af8c17d63e558678a278b0bfdce69ce3
-size 303464
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd.uasset
deleted file mode 100644
index 13db3c7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e7c5de565e79a8070a81164eec10e4127a5ce7b1327a6088935798b153be19a2
-size 157631
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Pivot.uasset
deleted file mode 100644
index 3fabfb4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:debf1038a3804e3096d1f40404e6f84799357b63267c69ac33ca2b79427e2648
-size 310387
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Start.uasset
deleted file mode 100644
index 85ae8d3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8087a491e8820c1af8a771be54bb5a1e99813a126979c3d753dd2e135916093c
-size 214343
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Stop.uasset
deleted file mode 100644
index dcfe9e2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Bwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7c1c4bd1a3337c6fa3a709682db5bfa874d03f5b1934ebbd6c005428db08a973
-size 310571
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left.uasset
deleted file mode 100644
index ad8475e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e336b4e0a298aeb3cd1dd991b505aa9c88b6539a109e9736c281bc16a25a1f97
-size 157640
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Pivot.uasset
deleted file mode 100644
index 75bd69d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f857f132bd0cab04368b84cd3a6f14c22fb2822027e7338455c52ae6123e5d58
-size 292807
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Start.uasset
deleted file mode 100644
index cf19c42..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8a0196fedee4972bf44798097b5e77e9b9f1ae04a907733eb97242bdedbe24e5
-size 214564
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Stop.uasset
deleted file mode 100644
index e5ac0fc..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Left_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d11229f99280586ab543fc54e32c757ea29153fadaba1a8318865ba0fc2d9140
-size 310596
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right.uasset
deleted file mode 100644
index 44f0ccf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f347e9854ac3545db6acaadac56e6681883ff493502af78690a266fdacc106d8
-size 157413
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Pivot.uasset
deleted file mode 100644
index 4e4fb92..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:40b5b152bb6d0969ade64f7a49b6670f9222839d5a8c5ef46e9ef74b55aa251b
-size 314196
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Start.uasset
deleted file mode 100644
index 475ca3e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:af7427ae5b62a3a5092091c92e80e6f4ddfbf9630284f872da51c4c4edaaab7c
-size 214562
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Stop.uasset
deleted file mode 100644
index 6017a52..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Run_Right_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0059b60c820f41fd3ec1e6f715ceda3a7155a8cb37cfd1f1994f525886529eb8
-size 310427
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged.uasset
deleted file mode 100644
index 1cfc295..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f02dc31d215921ee1e80001a70d55dc4320b604ad6f857779b79a6e41e768ce7
-size 1075515
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_End.uasset
deleted file mode 100644
index 967b3ce..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:54abc399723fd08f43eca6484a6e47b28dd9edf1e1851bfd3b71fefb37e975a7
-size 471293
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_Loop.uasset
deleted file mode 100644
index c7921fb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:50171931b0ef3497b21cd9a8e381f0de639e7801be3a5ab254a89016bddcf4c3
-size 1111806
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_Start.uasset
deleted file mode 100644
index 7bbecd1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegged_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cf85d93501b14df0680da45aa5d021fde7e8aa8403d414d3e5ece1aed94b2035
-size 364273
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs.uasset
deleted file mode 100644
index 2ec6f01..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:49eecb5c6bd0bfe6f415c033715b0435dbfc25eda35488c48c80b6d23da4ac8a
-size 1361016
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_End.uasset
deleted file mode 100644
index 2c7dd68..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:19eb6324370f2b3c2a196f4e51f702c174c50bf05774a8c78ce5179d2004f658
-size 400092
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_Loop.uasset
deleted file mode 100644
index 21774ec..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:337fd3eea8d85436c5c202a68af678d92b3640f10ccef5134772cfc8f2d3ce58
-size 1467849
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_Start.uasset
deleted file mode 100644
index 77ff063..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_CrossLegs_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cd274ff0c5f910e7a9e0327c0daa8e3a5ab1acf2e70961ab0079b77dcf4bfee3
-size 293185
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_End.uasset
deleted file mode 100644
index 080dcbe..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0b27f36449a94275f08180cb0164dcce1a26111d55281b2892d1902a3fde8c52
-size 435366
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless.uasset
deleted file mode 100644
index bba9901..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c96ab8f1ca5a8e0d07c551a31266d5d76048501558906715ae59e7801c299ffa
-size 1325735
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_End.uasset
deleted file mode 100644
index 0b070e3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f039b2d51988ed7755d30d24d455892e4399b80f8aae08ef64899d3cc4ad1764
-size 435841
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_Loop.uasset
deleted file mode 100644
index 60d1c01..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e212d3506882214c8efca3fcc43efbd40fc5913d9e962f6b813a9bfe633b0ab6
-size 862928
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_Start.uasset
deleted file mode 100644
index d214fd4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_FeelListless_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:28024ccb6b225d400d883643d7e781b6864054600a18ea36d4936d8bdf21d8d7
-size 293315
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes.uasset
deleted file mode 100644
index 94e7671..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:55df08f5b32993487b3c3a6db8f66be3b2530260e5ca198702e08d0ae36721ef
-size 968710
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_End.uasset
deleted file mode 100644
index ac990e7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9887dc4ebac6066cadaef1a1db7c500eecd938df8a4b33661c2f67be43ad6647
-size 328866
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_Loop.uasset
deleted file mode 100644
index eb330c3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5241b41602deb1671476bae6c14b70b10c2f9279b19b3bbcde7b7201b1dc1e11
-size 755838
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_Start.uasset
deleted file mode 100644
index bc15daf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookAtToes_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:27290b490c5a44e0255fc4fa63190c46bb023934ac66fb022bcef553fd7422fc
-size 293199
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookingAround.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookingAround.uasset
deleted file mode 100644
index 6631b74..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_LookingAround.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eb0948f3fc4b73589bc9425c953787c1a60fc5c5efd3bc0572c4fe71e7f987dc
-size 897797
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens.uasset
deleted file mode 100644
index 749cf55..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d6046521b09c9f7e0334c6a2df5439a867bcc96b45e4531470a50e8216fa4e48
-size 969725
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_End.uasset
deleted file mode 100644
index 6615e79..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b2285622f4dc8fdc80bd20eaf9e81186cbc957ab4d00affa5b9ebb4cc53e6896
-size 293336
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_Loop.uasset
deleted file mode 100644
index 2436de6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e6d0c6c97846be61bbd11681bf11ace9529a4dd8f58e528527729830cd9bb8dd
-size 1112189
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_Start.uasset
deleted file mode 100644
index 9b6b23f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_PutHandBetweens_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:753d98d3f2ce0e1fdba03fd0a9c31d60e2987d31879e2663e5fb9bee08e2d045
-size 257877
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow.uasset
deleted file mode 100644
index e5be29a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5c3a34339cc087ba1539c781a6d0f60845ce88d454cac8de1143d100b37800d6
-size 1681622
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_End.uasset
deleted file mode 100644
index d8253aa..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a57125c22f64ba0eca0aac79b5103a2ebba0188d0918c5dab64bdfc953e1adbe
-size 453518
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_Loop.uasset
deleted file mode 100644
index d99fcb5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8d952c6cda527b48d9a8862c961153c341f87964045fa74b138be17912422042
-size 1361173
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_Start.uasset
deleted file mode 100644
index 3e8f3e4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Sorrow_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e022e63ede013a3f38da32a00d3a6e2e86ca40467e2212d994281d70b35e78a
-size 293229
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Start.uasset
deleted file mode 100644
index 47e8d2d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db53840bfe0a5399c9256516456c66137e085b12026e04e41cc87e433e39f549
-size 399389
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs.uasset
deleted file mode 100644
index e596b7f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0685200099e19652d05b1218ce9e520444bc9c728d23325ba8b5a917f1705bc
-size 1076515
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_End.uasset
deleted file mode 100644
index 603ae26..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:93b1e0c872d1f8dc1245623e3ee91848a07cd3d10a04a452762f23ee8ece7130
-size 418008
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_Loop.uasset
deleted file mode 100644
index a97d9ad..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:31131ad9b6c502ecf6d3b053f56c5ee50823d9c0326d9daaec4b7795d2903401
-size 720475
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_Start.uasset
deleted file mode 100644
index cfded85..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_SwingingLegs_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:47677b71c3dc65313ba5aebaef26180152c4f5512ad808f90eeebe71f2283f41
-size 293458
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp.uasset
deleted file mode 100644
index a24273c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1283d164010f0dbb019bfca5e940d765fd0b8e444e6334bf4d8792a4db0b43ba
-size 1075379
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_End.uasset
deleted file mode 100644
index bdeb8eb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6456153c5b2c606993b80db48ba0b2157622f4cce25b82c346150828e8b4dcf4
-size 435718
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_Loop.uasset
deleted file mode 100644
index 1d46036..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b279e098159c73cd4a28afd75ffc58b272a465e18776aac2f04d783b48ddf655
-size 755670
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_Start.uasset
deleted file mode 100644
index b05ec30..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sit_WithBothLegsUp_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:82a0d3927802918879f65562fd1f91272d4afe4963d0cc4337fb91a47d8220d2
-size 292899
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01.uasset
deleted file mode 100644
index 834a847..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7ea7cf8b2570fb5a89cb0a7040423c6fdbfec4039551d50150ef5db3bcc79e68
-size 236933
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Pivot.uasset
deleted file mode 100644
index 9e49acd..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ca6c7877ccfd32df64746dd83c35ee26303dcccf4c4fe883633fc716ea3742e2
-size 257349
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Start.uasset
deleted file mode 100644
index 6f3c6c6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4448f337ed03a72512ae19f0d7d24caff46b66bee5a92e8838dda48ba2c35d99
-size 317345
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Stop.uasset
deleted file mode 100644
index b0cca59..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping01_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6276ede838a1947b3ce3e75af5daa4a819b593fb1814c1b4f05869ea8b334175
-size 466876
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02.uasset
deleted file mode 100644
index 6c36707..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9b8cb43882aed402dddc1ea51a8803960d94974cb05c1424e63972e968014839
-size 222634
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Pivot.uasset
deleted file mode 100644
index 01e4a36..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f7c2559c2d89b9de8b716784fb75d4e97115325c78052e8d3edc0e296ba181c3
-size 257342
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Start.uasset
deleted file mode 100644
index 7a8695b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3769983ff68dd49da96ecf3deeaf113fd2d46a39d7dade0119bcaccc092bedeb
-size 299524
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Stop.uasset
deleted file mode 100644
index 3d0bc3a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Skipping02_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:beac412247b820b1b75368a4ea448a0b402a9373c0d69a4d4629d6c03c7cc5d3
-size 463502
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee.uasset
deleted file mode 100644
index b6d8024..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f4c34240f0b5bf633cbc4b202818111ec03898f7ae3cfba649abd289e18be434
-size 1432128
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_End.uasset
deleted file mode 100644
index 11c6d05..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:244c0bcbe1774e341c10caa9481e363e4cac4f4e2f2c740da7741bb9cb3f904d
-size 399515
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_Loop.uasset
deleted file mode 100644
index e9f66eb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c22c170a39779befa95a607542fb05df4b675b301ac78b2f1f07f82600461d11
-size 1076141
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_Start.uasset
deleted file mode 100644
index 1e68eb4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_BendOneKnee_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:974018663ac2c94c2b9c6817be5e33c20795a7d49908b49475cb58cec29de0c3
-size 399795
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways.uasset
deleted file mode 100644
index 4681a0d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:56d6c88edb480a8d5db0f00845d64f652fbe6b0a7b4034af59435e2682378f6b
-size 1431882
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_End.uasset
deleted file mode 100644
index d4d95f8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:47a1a14185c7bd582756ce45ee76bbdd7202d0486e96eb8f7e35e8cd1c6f4c48
-size 470771
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_Loop.uasset
deleted file mode 100644
index b283dc7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:53ed24dcfff57df0df21a11012ebc4d142b41be101545b64875e9fa0d7275636
-size 719924
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_Start.uasset
deleted file mode 100644
index 5b47d8d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_CurlUpSideways_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8fede87c85fe06e4d8af671a283afc17ab4526e9b708590d707ee42fac9adf77
-size 399764
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_End.uasset
deleted file mode 100644
index c379ecc..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:789627ad831a960d383700f6db2c79200438e4c36b55d1e206256505db98b6ea
-size 720276
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown.uasset
deleted file mode 100644
index f31b7d3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a9fd82297b040210344ab77507b157c4ac51c3034ce96eb18a87c86e4d854c79
-size 1432143
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_End.uasset
deleted file mode 100644
index 5c1f4e5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:95d974b69a74fcfdfa1dbb2903532d6c352ad8468315d69b5f0e2dc8a9f652d8
-size 542115
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_Loop.uasset
deleted file mode 100644
index 7167658..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a4bac634e0f1cdf357f668db7197452c59a1bb17c2126206b5ddca0d4c6f353c
-size 648972
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_Start.uasset
deleted file mode 100644
index 3d1b009..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_FaceDown_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c8270d2ab23a314c700c13a3c260d0c53480a9a99a3da1275ae2568a8a9132be
-size 417540
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up.uasset
deleted file mode 100644
index 678ccca..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:60fcd22c8771be9fa100eb2fde2cb2aee461d53c70f4a3eb5907d6359055b64d
-size 1325591
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_End.uasset
deleted file mode 100644
index c075a1b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:615e765345779b03c7b814c3e2e58fd490aae5300642b9c7d79fa57ca947e993
-size 506344
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_Loop.uasset
deleted file mode 100644
index 460be6b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:35c4fab11c1eda7c38a6346dcb8ee029025c2a16f857fdab76a05e7044b0d431
-size 1111791
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_Start.uasset
deleted file mode 100644
index 3646a59..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Sit-Up_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:31ce8e8fade677b856778a469fb1fd19b6f361863d438cfb85370ca36dd42c63
-size 328577
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Start.uasset
deleted file mode 100644
index d0443f4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:174aab326a6ed6c52e81e71cfbf46d8803b5783c05c34355315ef173b1dd9a19
-size 613555
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch.uasset
deleted file mode 100644
index ff6bcb6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2274dc00c103ced3a10cc3e2604afd857491404ba2276205379e521523ca05b7
-size 1432048
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_End.uasset
deleted file mode 100644
index 85a3a9c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ef4325e5fe45d10a0f55e1af8b687e2a9109f399871106bc1ab959b89de1c667
-size 542130
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_Loop.uasset
deleted file mode 100644
index 3d9ea94..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5602a445d16e4dd4aaebb49f8e893748ed3f2bff0b5c6de56d35e85ea059c707
-size 969250
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_Start.uasset
deleted file mode 100644
index 485c7a0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_Stretch_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3a1778d2cfae7ea2b5d2bdaef97eac4605d5b9c5e95ee142566bc9db71363040
-size 577675
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide.uasset
deleted file mode 100644
index 0c55f8d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3a4b57bf08580711b46b832e17d78b58955513bd1e3555c657139c8533e9dfe2
-size 1432250
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_End.uasset
deleted file mode 100644
index bb1e0e4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:92a574089c5761017d7752f10ba6b9603f1b56ba8c845626adca7f43e0ced7f5
-size 435106
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_Loop.uasset
deleted file mode 100644
index ca2be3b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1fda5367373f2f578925ecb7d28a32afa4862460fb7944f7e498533dee6e43ad
-size 755840
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_Start.uasset
deleted file mode 100644
index 9cd7dce..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Sleep_TurnToTheSide_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f3ceb4faa6e872c477ebc6245bf5b36c1a2d0b4cdc0ef2de51bb8d7ff98db88c
-size 399799
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_End.uasset
deleted file mode 100644
index 88681c5..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4272eae11483b26695f2747c92bad868e187955353301a330fac852e7f890360
-size 364837
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_Loop.uasset
deleted file mode 100644
index c83ef6a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:84e1d919de36e21effdf374e8fbb654931bd9dd013dc1cfbb57d693a49f4c3fd
-size 614089
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_Start.uasset
deleted file mode 100644
index 22ed5a2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak01_Normal_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:75e8e55d18f61c6d3d28ede5a5ba74b9908cb82c1471ba8c4a77ee2f1d373a75
-size 293649
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_End.uasset
deleted file mode 100644
index fdbd507..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:92535b2e5695542b2e1ef29eec6cdb5bf75d4118afcc67b8c252838052e638b1
-size 364868
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_Loop.uasset
deleted file mode 100644
index a4018a1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8a47ed9794a7d72cf16f8711150d0d95774654cbc1c954fae506be9d2eb5d1ff
-size 614194
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_Start.uasset
deleted file mode 100644
index c2344f8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak02_Explaining_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ea9ca645aca336340999f12f0a2ca9a68256f177e3024bea87c027fc6f82fea
-size 293769
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_End.uasset
deleted file mode 100644
index 58de077..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:864ea6c9d1fa370c53b5217cfa4a45c54769527f2a94aa9ebdee83e8145fc11e
-size 364827
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_Loop.uasset
deleted file mode 100644
index 6bddd1c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:043132aa2ac7fb634896c604bb4600f478253a641757a00127ee12b35f875562
-size 613906
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_Start.uasset
deleted file mode 100644
index 351e5ff..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak03_Excited_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:aedf6a0a48a76fc753b40822162415a287bb67ede0ddc90e34ca9fb37299c80c
-size 293596
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_End.uasset
deleted file mode 100644
index 93017c9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff1cdccf77dd506d60c1d3b5fffe81c452453d403094d0c038dd44032d0b5895
-size 364781
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_Loop.uasset
deleted file mode 100644
index 8d71df6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:256a4230547afbea7ad10ac54726504b70cdccb7b180c069e9f1614a65bac756
-size 613961
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_Start.uasset
deleted file mode 100644
index 10eed2c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak04_Calm_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c68f91ec250524501bb88ccf46d1cd846bf3d0378ee31f7ede8f30676e6f92b6
-size 293477
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_End.uasset
deleted file mode 100644
index 786aadd..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:339f741eaab19f3f941bf29b16a37da1c23152e84aa901a285f8a218cb577979
-size 364913
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_Loop.uasset
deleted file mode 100644
index 9f131d9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:74ea29a4efe9c6655481426dc044049fb8ab1a0331b042678d26fc5047cd24a8
-size 613848
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_Start.uasset
deleted file mode 100644
index 5a78b39..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak05_PointingFingerScolding_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1c7ffc9a53c6dd6d6076003d245425e2783ec2180c3e2ca403e311b0a96175bd
-size 293640
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_End.uasset
deleted file mode 100644
index b21ad7b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2fbebc93c5bdb674d9a86f339c76afe642b0b11d754d5e093ef76f15eab6a0ee
-size 364937
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_Loop.uasset
deleted file mode 100644
index 26e25f6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cf42d341d08d79e299e075016cd95e4e501f5c2cdb8145ea5f7400577cc675e5
-size 614122
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_Start.uasset
deleted file mode 100644
index a420b6c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak06_PointingFingerCalmly_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4958d90b37c18b5844fd54295f6695e1a454bc686e9e8cabc023f38d57a4bdc3
-size 293637
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_End.uasset
deleted file mode 100644
index b33c445..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5c72c8c265052e5776506c4184fb92002a521875ea7adefb1b15e5df6d61a9fb
-size 364854
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_Loop.uasset
deleted file mode 100644
index da18958..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f44083725527a0e06eb225b1fdfeb9783eeb952e1df86e8344d32bc53afea123
-size 613973
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_Start.uasset
deleted file mode 100644
index 838f36c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak07_Chatty_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d1c685f83ca32faaad12bb312b46b00c3cd4cccdfa413a94b204a249a7faa902
-size 293552
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_End.uasset
deleted file mode 100644
index 5c7f3ba..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9b975d2ff85c77d862dcc4f64844b0f2fb550fc938841a07b68dba810acf7e4c
-size 364924
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_Loop.uasset
deleted file mode 100644
index 45ad4a7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:862b6f4689bbb40694c8facadd11bae4359f9eec625f4951c711e7c3b9116c60
-size 614137
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_Start.uasset
deleted file mode 100644
index cf17f71..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak08_ArmsCrossedPouting_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c63c6fb4a13a338c47da14d4a1cc5d2dbb68ba920e2ef34211581bab8e608338
-size 293675
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_End.uasset
deleted file mode 100644
index dcca6e7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6563b6c04a075f3e7a694cd51d086bbee3791dd63590d25ea0dbc389cb54fa9f
-size 364885
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_Loop.uasset
deleted file mode 100644
index 0d5b4ab..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e551d49b8797143f3af60256d94efa2338ee97d90b31edb7b8f319b030b3bd96
-size 613959
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_Start.uasset
deleted file mode 100644
index 247f482..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak09_ArmsCrossedCalm_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:92390bd4aa9730b70acab1f591a476b674244d36a61bcae5dc0db63df164d5f2
-size 293627
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_End.uasset
deleted file mode 100644
index 23b7708..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f72f2a30c9dba6e1603f5fc36464d6d507038e9901674b88e4682d9e60ae858c
-size 364827
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_Loop.uasset
deleted file mode 100644
index 4c52263..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e3aab678547af19cca1fc2570746d112592d4fbd424e58dab40cac8a07f627db
-size 613914
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_Start.uasset
deleted file mode 100644
index cf83a42..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Speak10_Shy_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:856770ce552ad53d97c8405590269790c730a7c819d1c01c568309c8488a1bce
-size 293540
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_End.uasset
deleted file mode 100644
index 13f490f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6b9c9b187911b9557239904259e45c70cf88ef3c657a87ea71f615ddea4e28d5
-size 399858
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Loop.uasset
deleted file mode 100644
index 6cd1615..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:650c43b2d41886af8f6bec593b43db68920b481c48d9e483209402070293e7bb
-size 720408
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_End.uasset
deleted file mode 100644
index ece1aa0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:673a8119917a8969eb4caeee278c8a58c451b8b755409c0cbde548060008861d
-size 364495
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_Loop.uasset
deleted file mode 100644
index 4834601..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a1c586f0410e48f87ba9e7659794c8e4c5deb072583f7b5bcded12632fd2dc9b
-size 719887
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_Start.uasset
deleted file mode 100644
index d43a2e9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_L_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0e7ba1cb9000582ae451ed47c10ee2aef2eb2a9996eaccbb1a29b040119ccd89
-size 292696
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_End.uasset
deleted file mode 100644
index d586fe9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3653bf59acd607cef85bae7476f64b6d72558245f88c6f6a0c6f1452ac2f8aa3
-size 364439
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_Loop.uasset
deleted file mode 100644
index 6416369..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c93d5e66e0f44187d4c3e6b70e8c798945daab41a5f3fd187fd6318d0f0cc84c
-size 720050
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_Start.uasset
deleted file mode 100644
index 98a00ce..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_SneakAPeek_R_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1fb11b966ab934502bb2695b8d0b7c075a20db48abb7922bafa03c48f3f875a0
-size 292860
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Start.uasset
deleted file mode 100644
index e638ebb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7938b6b843f8b3153b5d61496e6c79978c9d4eb2032428f1765c70c5c06077f1
-size 293229
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Loop.uasset
deleted file mode 100644
index 9f90025..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:88af523fc5b1c86135d3aef61aa39becbd8ed929f9e6c3fb1b6d380991004a3c
-size 221745
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Pivot.uasset
deleted file mode 100644
index 3f7c5fd..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ae1c93762f95b6272d3d66ffbc8fd1649b9cd37b91b2d2067499abcfd4388abd
-size 471148
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Start.uasset
deleted file mode 100644
index 2f709aa..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:933014af1f86d1a3e3c03b127f3354a771a29ad17fcd8bf7c510a9445aa221f8
-size 346362
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Stop.uasset
deleted file mode 100644
index 30694ff..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Left_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:069e1ef441c6ad9c1a342202b73606bc65a75e7c2c75ba0b93107fdf055801f5
-size 453259
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Loop.uasset
deleted file mode 100644
index bc0de69..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5823f6a07a2e56a7f9cc8c52337a47884674a7ac3c82eb4449c710ee75a84b3c
-size 221827
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Pivot.uasset
deleted file mode 100644
index d4a5128..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:95f29ece65460ac44f13a775f7e3785a4bd7aff2abe0abf7894bf6f0ea35cecc
-size 471271
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Start.uasset
deleted file mode 100644
index b964ff9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d8d4ee3719934b4692005dd1fbbf5a65d12c3d047c44bf6a2250b35100beafcb
-size 346579
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Stop.uasset
deleted file mode 100644
index 0f6655c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_StickToTheWall_Walk_Right_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:11e9a597c3230d548fdf4bc51b2a4fe504f57e081eea91fe4e1322ef11f2edc8
-size 453564
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Bwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Bwd.uasset
deleted file mode 100644
index ac09152..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Bwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2e29020bc503661d137407ba13f502eaf20f7c0579a571f1c1e4a635d6d04a01
-size 290981
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Fwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Fwd.uasset
deleted file mode 100644
index 559e4b6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Fwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:afccd23cf705d2aac55c2a946b6560d857cb439ad2177f3b1788ea2cfc813f91
-size 291478
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Right.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Right.uasset
deleted file mode 100644
index a96ff0a..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Right.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:168257fd628309beb50a232ecf5a5a5229288e67cc22b7fef28a6868db05e10e
-size 290499
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd.uasset
deleted file mode 100644
index 626de9c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f2e240d82cd558da4f5e6b024676585a3fec72a1c6ab788deffc9ffc050e164c
-size 238666
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd_Start.uasset
deleted file mode 100644
index 6fe9f73..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5644acc8c6897617b0403d7113f0a021b24391f64b0746cebc99b48f8932c310
-size 452045
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd_Stop.uasset
deleted file mode 100644
index 0667eef..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Crawl_Fwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f860d8db0af4b63a4bd693d56a9ba29e0ff68b5bc0131468241a0c47603c646e
-size 398053
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_End.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_End.uasset
deleted file mode 100644
index 1f8917b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_End.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:acd80937bc738e8d5437cb58f81d02555e27e4fb02c9eebb829a6a1c68f4c622
-size 257262
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_Loop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_Loop.uasset
deleted file mode 100644
index 9a4ce2b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_Loop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5cdd54fca0e022006d121b0a938c7e2ba6dfd571743a6c19bd3389ebdf4e6d08
-size 168188
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_Start.uasset
deleted file mode 100644
index 011057b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Diving_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:18ca8618211ee743670f21e0eb6e5bcfa361ec282599bc6dcf99661b01f062be
-size 185989
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd.uasset
deleted file mode 100644
index e389567..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:167810d249b529943870c0e251f8ccc8f2fedc0c2e8fd13b136ea33fecd2ec10
-size 291982
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd_Start.uasset
deleted file mode 100644
index 0de80f3..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4682b0dab1c84f0ad95c4280404e8f097854cca649b6c34af84a3e78e9a78089
-size 505717
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd_Stop.uasset
deleted file mode 100644
index f5461f4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_FlutterKick_Fwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7bcdb6389f8a23dbd133c1daf516c787daae562657d093fd19b2137150166188
-size 469503
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Idle.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Idle.uasset
deleted file mode 100644
index 7877814..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Swimming_Idle.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b5ae1f7f7c4f9939ac7c969cb92aa44484cc5a33fabe55b58be1fe7a2a255d82
-size 292689
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_TurnLeft_180.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_TurnLeft_180.uasset
deleted file mode 100644
index a9a13f9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_TurnLeft_180.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fec926d8e6072b0a505d8315ad5461661bfc9cbc306a99bdd84f9537fc0182fd
-size 364075
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_TurnLeft_90.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_TurnLeft_90.uasset
deleted file mode 100644
index b93c8e2..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_TurnLeft_90.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:896561759b16714ef273d6de14853ba97e5cbaf188bb1f2d6c81ea5c100690a1
-size 271390
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_TurnRight_180.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_TurnRight_180.uasset
deleted file mode 100644
index fb20c51..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_TurnRight_180.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:22684870ede98399abbbf4cf794222aa6489fb4737ed28b047b9ac250fbbda1c
-size 363916
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_TurnRight_90.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_TurnRight_90.uasset
deleted file mode 100644
index 67e81e1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_TurnRight_90.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ac4829994a46432589af3add53c193581dcf3363d5d7abe47b46b6063ff820c5
-size 271389
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk01.uasset
deleted file mode 100644
index 953f25f..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:85ae8edef3ec698111889f608e4b31bffcc1d2d51431c97afb60288233399d53
-size 221815
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Pivot.uasset
deleted file mode 100644
index 6930634..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:09ef17c02ce78a777f4c8a8623a98f7d4ac2a8c307f6eb69f45ead996f1a5bd5
-size 346617
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Start.uasset
deleted file mode 100644
index 3837390..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:41d470328bace1e86cfc7ed6951585db8e3316f21c2bccb790b35d426051c586
-size 328512
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Stop.uasset
deleted file mode 100644
index 6061990..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk01_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:38d8ee51c8420ca1cbc733f5d002ce6487e70acb9d015c9e0fb0332d1f4632e4
-size 399763
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk02.uasset
deleted file mode 100644
index a08a311..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0532c512c6e1e76b71b3a18bda160f1cdcc4c8b0cbd0515b3f9998de974a6cab
-size 221695
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Pivot.uasset
deleted file mode 100644
index 3559de4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b3dea5e48f2444cc9b9552f61a1bfc12c9d0b0483edf2c643b8dc105588b471d
-size 364505
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Start.uasset
deleted file mode 100644
index 816f9cf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:261610070143d796754cfc71be5f6c6c854c12155f4f098c034d958e72ae7502
-size 310390
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Stop.uasset
deleted file mode 100644
index 52bb947..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk02_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c1fbf98807622f052b57d299f0de550cb8c1e0b0de1a712e82203773c135a29a
-size 417197
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk03.uasset
deleted file mode 100644
index 98b19da..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2a1652f175e4da62d05203aefb68f6603529bfaf3ecbcd0b22c125c5b9b3f51f
-size 221625
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Pivot.uasset
deleted file mode 100644
index 7132f8d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:77f86ceed6424d87d28e40514f4d15c7c4044b177997e9c65ee53dbdbc2fd36a
-size 364482
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Start.uasset
deleted file mode 100644
index b07e199..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e71d740d45ed775c61a13625db59c16058687e911a4b71baef5a443dc70313d
-size 321462
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Stop.uasset
deleted file mode 100644
index f04728d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk03_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:27c714fa923b4968bcb48d33cb8f2a63b42e71bc49919fbc23c3bbf5138098fc
-size 406926
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk04.uasset
deleted file mode 100644
index 2e92183..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a332bf43f2928974942465809388ac36ef594880c2fb6dfb32d140e855c63083
-size 221865
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Pivot.uasset
deleted file mode 100644
index 48aa8c8..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e340b34c28e82fe7f06540f9d834a8c24e67550478f1edf529faf165b59e86dc
-size 364529
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Start.uasset
deleted file mode 100644
index f1fad0e..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cf4884a5578339880ed8a4afb8f7e614dea66bc461b7866a9ae1b9f8c61e43c6
-size 321461
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Stop.uasset
deleted file mode 100644
index f30cf07..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk04_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fa91ad0c70cc5c785dcafb6adba5db13e50d59be258483e759244137e76de60f
-size 407000
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk05.uasset
deleted file mode 100644
index 43a94d9..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b8a93420720ffa33a2c512dc64ddfb8300fc8dbeb89df42537b1ddadbd77607c
-size 221804
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Pivot.uasset
deleted file mode 100644
index 8be350d..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:63034e1c71eed7b759aa396bf3deb05c5371c81dc2db783888bc6c85af4c22a9
-size 364521
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Start.uasset
deleted file mode 100644
index b836ccf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f20300b1349eade62f6c79a23b6866d6634521cf0f41c374416b9ae51e1098fb
-size 321531
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Stop.uasset
deleted file mode 100644
index ac5c36c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk05_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2622016fbbdf9237274c5a96560a4cfd5ae79762b356467b0552d60d9e729663
-size 406990
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk06.uasset
deleted file mode 100644
index e96ee9b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1cb9c02070281e756a6edb66b93b2afe0bfcd8ca3633a132c5910997334b9be0
-size 292559
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Pivot.uasset
deleted file mode 100644
index afe4c07..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d1d99b9d8f036394f11c6a90c3b3da0b2a1f71d2a61c67773809b5683880c469
-size 392473
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Start.uasset
deleted file mode 100644
index 7f1fb6c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:779b597bef7461777b15180c81c7d4dc014927dc2785f5d86bc9213e8b2bf26c
-size 417045
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Stop.uasset
deleted file mode 100644
index 319e37b..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk06_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b729afc3e4bb030b81a0ec5bcd9625b59bd0997fd9409bb4e67b27fdfc64908c
-size 559428
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk07.uasset
deleted file mode 100644
index a931760..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:48847b0465f673cfded15410dda62beae38b2607f4b92c67089ac08660cd6fd5
-size 221575
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Pivot.uasset
deleted file mode 100644
index 870742c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cd2a85e10d44b4e136261f890186e066e838627ff0c62bdac98d03d26042c413
-size 346408
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Start.uasset
deleted file mode 100644
index 6c06a6c..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:98c618a0f8c40dc540474ebf102461f1c1210a3a47735f9f138277fd7d030cb9
-size 321346
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Stop.uasset
deleted file mode 100644
index b200cf1..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk07_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c29ef916c794782d228825e10128d05aea1e79838fe7cdd5d6fa28c9a60b0323
-size 406828
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd.uasset
deleted file mode 100644
index eb2fbc0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:aa49ee6ec1b341224099b19fa06d53173121c081ee5dea770a6791d21100785d
-size 221978
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Pivot.uasset
deleted file mode 100644
index c2d7282..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c0f57bdb96e81602fe5032e80575b8f065a8a4c153e804c218b9389c2ef19905
-size 460332
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Start.uasset
deleted file mode 100644
index c69fad7..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:63a02b7370d17487d673bd1042005ea9249b0b1be4b7bbf9890994eb166b7aae
-size 335760
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Stop.uasset
deleted file mode 100644
index ee5f073..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Bwd_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a74b8c2d8191eb1a7daa6ae7df2d258c0975c3f386f9ceb8a45a5c0d9d7168fb
-size 463955
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left.uasset
deleted file mode 100644
index 422c7fd..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cdee2e84c0eef9b5a7563c4d1823f6d4501f5bc57ae055b339732aec9b99c46d
-size 221568
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Pivot.uasset
deleted file mode 100644
index b67af99..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4c00ef3a863bbe49be7c31d529d25190762e87a91649626240becd1096fe22fa
-size 403079
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Start.uasset
deleted file mode 100644
index d4ee9c6..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7f4ed6135ee5e62fbb5b2787385e16830d03308a482a61d8a1c7a1dc952652c9
-size 335597
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Stop.uasset
deleted file mode 100644
index 93b81fb..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Left_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:183b408ee12a7cd7ff167ff3ae81e17048a1cd97a73f263b86152aa5f8d6db6a
-size 463825
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right.uasset
deleted file mode 100644
index c701eaf..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:01c4f52a397e9f3fbf3457f33a24ee7517c35db76ee2fd253a7fd276f312d08c
-size 221603
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Pivot.uasset
deleted file mode 100644
index fb985d4..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Pivot.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e68771f9f660d9f40f2ed0bd862ce37a9dce1f5631dfd38b068b88f356e74d5
-size 413905
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Start.uasset
deleted file mode 100644
index 66f4c42..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Start.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8b7fe202c6bc31f49a7d542ec254db3e1c8e15e23e6b6796739e84b4cef4260e
-size 328531
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Stop.uasset
deleted file mode 100644
index 18412b0..0000000
--- a/Content/KawaiiAnimations/Animations/Anim_KA_Walk_Right_Stop.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8f41161561cd87b8f771554920d32a490bd6567e0e08b12aaa4751930ab1a00a
-size 399528
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo1.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo1.uasset
new file mode 100644
index 0000000..97007ca
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8d39861b1151e7996c1df79d5f205a1e84caf7bf2a622a2c17715e1649e5592d
+size 1656504
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo2.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo2.uasset
new file mode 100644
index 0000000..6b380fe
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ccec24aa38a5d452f0ee5fb750553f50cf2039cdfc0ce1064003c4c5d72ebec
+size 1667364
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo3.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo3.uasset
new file mode 100644
index 0000000..a6718df
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f33e4db558bd651b7837646957d42f756d2f2b36ae9047e82b32ea8cc5767f3a
+size 2486001
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo4.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo4.uasset
new file mode 100644
index 0000000..44ddccc
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Combo4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:638a7f15607295f877e0efd3597e954f225488bcf62791b7165c9429be3a8f97
+size 1912050
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_ComboAll.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_ComboAll.uasset
new file mode 100644
index 0000000..31362c7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_ComboAll.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fcf762c711dbe4848d9921115bf641e154444f73ec0bb4355af6d732182064d1
+size 3885717
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage1.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage1.uasset
new file mode 100644
index 0000000..1496983
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:773ac2bf80795ea772fbec30c162b58584ba74ec1767feabda20f6b44dc0c654
+size 1326913
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage2.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage2.uasset
new file mode 100644
index 0000000..3aad042
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9f08356eb6c1facc5c4b89658b05f580acda02e152e743e4063565fc4296cdf9
+size 1539947
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage3.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage3.uasset
new file mode 100644
index 0000000..dba3182
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e9972edb3605c627aae0b79fc177d3b091eaa1cb2b1a1c442a2b5368e641066
+size 2121814
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage4.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage4.uasset
new file mode 100644
index 0000000..d8ff8f5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Damage4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a3e8c2040a53a615b332d63f00a1655426a08c084b2fedf900149544ffe4fe05
+size 1596001
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_DamageAll.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_DamageAll.uasset
new file mode 100644
index 0000000..1e4c170
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_DamageAll.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b281b0a37a125953f0ab50aff8122c51caea974a5a41c0aa7352ab2bd745544d
+size 3902345
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Idle01.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Idle01.uasset
new file mode 100644
index 0000000..405a630
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_BareHands_Idle01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a0f71c6f4418531a6c20c45b73dfe71270cb2a68ad13529c56050a62b013cbf
+size 2151448
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_ChargeAttack.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_ChargeAttack.uasset
new file mode 100644
index 0000000..f4ebfef
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_ChargeAttack.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:505b05ecbed24d9d98a404dc22fdc3b8ef1016dbfa21701a45527688f6f2cd5d
+size 3170291
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo1.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo1.uasset
new file mode 100644
index 0000000..c07d70d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb0f8e233fb645f343c793fb6340e98e133cc6b70c8ee07c608757d79346f023
+size 1912147
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo2.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo2.uasset
new file mode 100644
index 0000000..9ffee87
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17214e22a4df885a6c92204afcba9137a13d708c3e3e4c6705beef78b5b988dc
+size 1645659
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo3.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo3.uasset
new file mode 100644
index 0000000..1d856f2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1f7aef556ffbdf84b7a75e13da5a2a9f0e52cf1211f2dc2ba1d392409366c865
+size 1806232
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo4.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo4.uasset
new file mode 100644
index 0000000..3dd9cf8
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Combo4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8bc4cf8e94d88a19dea716a236940bd4936c179e21ac2d9b239f9a203001d754
+size 1999490
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_ComboAll.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_ComboAll.uasset
new file mode 100644
index 0000000..e92f9aa
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_ComboAll.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a7248b633e99bfd2473d5f896649d28ba22de0c3f1fd25deb58a6705e42c80c1
+size 3774919
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Idle01.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Idle01.uasset
new file mode 100644
index 0000000..cd14d64
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_HeavySword_Idle01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5dc8dad04e240b9cf31d1d09198a73d878cbdf2557db50204566eeeeeab30557
+size 1132264
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_ChargeAttack.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_ChargeAttack.uasset
new file mode 100644
index 0000000..1340d9b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_ChargeAttack.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c97e64a3e371c6ce6fcb31c076147e0816f8402dc2858d8a8ca6063ed2d6456
+size 2507352
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo1.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo1.uasset
new file mode 100644
index 0000000..016a612
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba277aa1f189ea2e99e316203f6dbb0abc209d071fa5c785f3814ae74db64b65
+size 1234670
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo2.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo2.uasset
new file mode 100644
index 0000000..e5c39eb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9a76db49357dc27a3a56b8e94fe0660241295d151820cbdae5eb0a0bd23f5e9f
+size 1234415
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo3.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo3.uasset
new file mode 100644
index 0000000..a9012d9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo3.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9040107e41d7c7d5b4ddae6d8bc7684c787e0087ae6cd7597eb8b75ec0075f1c
+size 1492897
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo4.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo4.uasset
new file mode 100644
index 0000000..c5f1d9e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Combo4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bbdf4b4b529c44eb6b9d4ceb27c7fdfa94e4533e0b6f41c465e9e60022e9fcb4
+size 1534789
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_ComboAll.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_ComboAll.uasset
new file mode 100644
index 0000000..7ff5689
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_ComboAll.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:49350c36d19197da807f3f67cfc8c2e52478c33fbe4dd309fdb6c77510864757
+size 2512223
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Idle01.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Idle01.uasset
new file mode 100644
index 0000000..4df6187
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_OHSword01_Idle01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9d1a47d6cdded00aa3ab189646ed64f468d77fcec6b807e4c9e02f8a29557a3
+size 1130281
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Idle01.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Idle01.uasset
new file mode 100644
index 0000000..1d597c7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Idle01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04c2c868aedd8edf2aed1aed893b2d8f5aa1b630ec43426b78dae22273eacc3d
+size 1091614
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Awakening.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Awakening.uasset
new file mode 100644
index 0000000..6ddb5ea
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Awakening.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31af70348fbc6b4ce1089fc88bf345f6a4eb20a2af07769bfb360c656978a00e
+size 6176130
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Impact.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Impact.uasset
new file mode 100644
index 0000000..9b5f1f7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Impact.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:238d89d8c5266551e29e65260ee939e2cfcda58240a96075a5f91947edcc8a6e
+size 3437854
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Recovery.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Recovery.uasset
new file mode 100644
index 0000000..609d74e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Recovery.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f72392267c23b0018bf86a5c9aeb8cda2593523726ceba7aeac48acb476b3d48
+size 2194524
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Shot.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Shot.uasset
new file mode 100644
index 0000000..493667d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Shot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d59c4e03bf458020a8dd0762f4b5a9a08e4cb408bbc136efb8c5769bb143d1bf
+size 2554329
diff --git a/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Unexploded.uasset b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Unexploded.uasset
new file mode 100644
index 0000000..4912e84
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Combat/Anim_KA_Combat_Witch_Magic_Unexploded.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f92f3c47eec065bb68b05e320cd2ce4a1fa220705c70d253bcbcf8b013f3cdd
+size 1507188
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Entry.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Entry.uasset
new file mode 100644
index 0000000..61131d1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Entry.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:309ac6d87d6846cc6b6eb95ad3ee9b9bd937d5f867fefa2f4ea67ed20690a37d
+size 1081591
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Exit.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Exit.uasset
new file mode 100644
index 0000000..a2a8716
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Exit.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0df4422554dd0324c0a74e0126e81df840c270310b58b60edeb8e0d9658e8573
+size 1485324
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Idle.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Idle.uasset
new file mode 100644
index 0000000..97b287c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b08215153b0bd44ff2bad6b9c6285c9a53b0cc1724f4e60a7fdef5866548cf2c
+size 336058
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnLeft_180.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnLeft_180.uasset
new file mode 100644
index 0000000..e3975e5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnLeft_180.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3448c38aba927846430274d1c53053a36c567567fa9238b392277bdfcf1881c3
+size 1337814
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnLeft_90.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnLeft_90.uasset
new file mode 100644
index 0000000..b087fe3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnLeft_90.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9aa47fbd087f6d7fc93645d07e5383c89241ce758b2055f5a7e382097886d53d
+size 927165
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnRight_180.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnRight_180.uasset
new file mode 100644
index 0000000..64277d2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnRight_180.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3d8c6dfd4caaa6909932ffb5e099a5c72effcc884bc91a8abf73d2ed83d49e54
+size 1340676
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnRight_90.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnRight_90.uasset
new file mode 100644
index 0000000..83812a9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_TurnRight_90.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e80e2eb7e3f927d26236f1feb431792e6b3fa1c98c1f5b71367c8d643ef7661e
+size 919170
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd.uasset
new file mode 100644
index 0000000..9297dbf
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:402688dc7d453501760af726b2045bb0b7e31d6b65eecff44451b6f34ba62e85
+size 620220
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Pivot.uasset
new file mode 100644
index 0000000..9290585
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:93974b855a013190089d1ae32c21768bd984a7517f74007bc981e55a0a499aa4
+size 1390628
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Start.uasset
new file mode 100644
index 0000000..82aee38
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0ae847c2d4ee141493597a5ad593a272c957bb4e1e11023b55028c01b02d115e
+size 1008929
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Stop.uasset
new file mode 100644
index 0000000..d2bd137
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Bwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c980b52661123302075e141fa1225740efe29264fb1a4e65ed60757319fff5f2
+size 1512604
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd.uasset
new file mode 100644
index 0000000..38abcba
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd8e44c6cbfbc96ebd6b01b50f3b5c3ee8f4d3da20baef9e6cc7af199d5b0a0a
+size 623151
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Pivot.uasset
new file mode 100644
index 0000000..08a57c7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1fa7a0833ffd45b6c72813cc21d77521ecc659c7bb38135e56a0a806c49d666c
+size 1397205
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Start.uasset
new file mode 100644
index 0000000..e01cfb3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69db295b727cd793886cc21ac257d7f85e9bc0d7f1c717d6a9cf0d8832ba9919
+size 1006655
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Stop.uasset
new file mode 100644
index 0000000..8786c6a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Fwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ad1455a88f05098a8bfe5249164a86cf98257356f5301af4afee8f21282cb45
+size 1513028
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left.uasset
new file mode 100644
index 0000000..782add5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eff65d88dd1d3908842c29a6489f6f670ff9f180bdc9158a2296f091c2115590
+size 629811
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Pivot.uasset
new file mode 100644
index 0000000..478dfd2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04cbca5491b91ec083270424a2d8ee836337badbae3c1b2811c9c6e62124b1b4
+size 1384521
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Start.uasset
new file mode 100644
index 0000000..1e274c4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:02ca264931a5f5e0ac937519744500770cea249eebf8a97bc4bd87c300148f7f
+size 1065965
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Stop.uasset
new file mode 100644
index 0000000..e35032d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Left_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d3fa4bfedadfd42ae0351e1a130af0d10282e471da5acf639da74aa4e6abf889
+size 1576772
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right.uasset
new file mode 100644
index 0000000..e596ccb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0ff914f741249d0ae1476683e0ba16cc6e34e2cc5e832f2f256e49c48b2ebeea
+size 629614
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Pivot.uasset
new file mode 100644
index 0000000..f7fe65c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6b1c21d52be983850ded0397714a8ec094edaa434f3c404e0cad00bfe3d7f50
+size 1406926
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Start.uasset
new file mode 100644
index 0000000..25f58e6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ea2638d4a460fb473f4ee683636b8b17a1d27a889109d3d80c3453cf4cc8784
+size 1056908
diff --git a/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Stop.uasset
new file mode 100644
index 0000000..871bdb8
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Crawling/Anim_KA_Crawling_Baby_Walk_Right_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d847c06564efb92ecd6ac0e4b985cfaf6fd62701ca241a85fb6b89d3be403ea6
+size 1573161
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle13_Dance01.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle13_Dance01.uasset
new file mode 100644
index 0000000..8f98ad0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle13_Dance01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be692602ec7c7b830b806e581bc3088da9a75a27930916d03d07a0569d578876
+size 3519209
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle14_Dance02.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle14_Dance02.uasset
new file mode 100644
index 0000000..f8a6f6c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle14_Dance02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:455f3941f13101389438655876e2e84807e367f730e2b278c717ad10a1f0cca4
+size 3591499
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle23_Dance03.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle23_Dance03.uasset
new file mode 100644
index 0000000..fd1089f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle23_Dance03.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf1dc4fa4443a8ebc1d60aaf3be6b807bcff7c4c2ff65beabd3f880eff558aed
+size 3911274
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle24_Dance04.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle24_Dance04.uasset
new file mode 100644
index 0000000..75162d9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle24_Dance04.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f20bfb525a5e6e69c01495c4159a3d53240a5a50003c5a1632700abe48cc25cc
+size 3183899
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle57_Dance05.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle57_Dance05.uasset
new file mode 100644
index 0000000..d4f7c6e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle57_Dance05.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6896ac305f0ed43d7c144ea1a903598a1b453db833ab1a344283660c6eb3ca2
+size 5100365
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle58_Dance06.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle58_Dance06.uasset
new file mode 100644
index 0000000..f7982d8
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle58_Dance06.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c1367fecb81f17335c9e7782d6419799d18a59387b48c77cf83fe3b8b5cb492c
+size 5298148
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05.uasset
new file mode 100644
index 0000000..9b41c70
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9a21555308591d36d0c8cdca4798dc3cffb536fdcf7e3762b68e8f1ea45f7d41
+size 2152189
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_End.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_End.uasset
new file mode 100644
index 0000000..a384577
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1fa730d2ea0bf59e73c9b4f5ae121087300d9380bc4d542c8a922bfe1c48d887
+size 908170
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_Loop.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_Loop.uasset
new file mode 100644
index 0000000..04c87f1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ceb5f7cb9c253a3e1b9049acffe8045c65857233669964cb4c9dfdd0ce6803d
+size 376375
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_Start.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_Start.uasset
new file mode 100644
index 0000000..1967a54
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:128c8442308438ca8f1df98fe4cdc248931b6906c3412fc2f9ada7d20bbb80c1
+size 401397
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_to_Dance06.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_to_Dance06.uasset
new file mode 100644
index 0000000..0c727f6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle63_Dance05_to_Dance06.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5524a2176674ec8fa59458d80c243af51b39321afea6cf2b0ffbc933d57c00b2
+size 453704
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06.uasset
new file mode 100644
index 0000000..f88e799
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:776a9ad3dbbe6ddee87351ceab7bdfe8168ff09e7a329c7ba8fdbc3be69695d8
+size 2204988
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_End.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_End.uasset
new file mode 100644
index 0000000..c68efca
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35df66d0578aae3228913c261c1af1220690cb6ed50d5c55cff3f3e83e16d302
+size 928926
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_Loop.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_Loop.uasset
new file mode 100644
index 0000000..2aefb81
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:925f64f11dc7b35ded800c40da31d51173c07cf86d36ccba89c6803c8185a7ed
+size 450540
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_Start.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_Start.uasset
new file mode 100644
index 0000000..31e8366
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:38f77def2ef7c2fe9f0aa5ae9ae0db67ebf7e9c43b909d2cc4009bca24cb61a4
+size 409582
diff --git a/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_to_Dance05.uasset b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_to_Dance05.uasset
new file mode 100644
index 0000000..9c58999
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dance/Anim_KA_Idle64_Dance06_to_Dance05.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:996ae536b7f15859776654623efe5071eeb96d9243b8d1686bd3cf9e3c4b4fd4
+size 453212
diff --git a/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Bwd.uasset b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Bwd.uasset
new file mode 100644
index 0000000..7b11aff
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Bwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8aaacf6fe03817bb495acc386529ff016d21c107ab0f4684cb5fe6a9ea5b50c2
+size 399947
diff --git a/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Fwd.uasset b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Fwd.uasset
new file mode 100644
index 0000000..fbe3f33
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5ef87eb59a222358002affeb6e9f2264d1aaee220d4fab5493eed7406658ae2e
+size 400571
diff --git a/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Left.uasset b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Left.uasset
new file mode 100644
index 0000000..e76691c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Left.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:983d35c58f9c2042cef30fe4240af3d457f530f63a900b6767916cf8405f8c05
+size 399980
diff --git a/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Right.uasset b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Right.uasset
new file mode 100644
index 0000000..4aa6c4a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Dash/Anim_KA_Dash_Right.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1765657b9274d94e272377d0825db9984da8efb64bb8fd3078113156f63682af
+size 400115
diff --git a/Content/KawaiiAnimations/Animations/Death/Anim_KA_Death_Ground.uasset b/Content/KawaiiAnimations/Animations/Death/Anim_KA_Death_Ground.uasset
new file mode 100644
index 0000000..ada2a1f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Death/Anim_KA_Death_Ground.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78208cd1f51f86727a27ad2f25d2d73c60bc806bfa2f4a47eff5a0089390d28f
+size 1353445
diff --git a/Content/KawaiiAnimations/Animations/Death/Anim_KA_Death_Underwater.uasset b/Content/KawaiiAnimations/Animations/Death/Anim_KA_Death_Underwater.uasset
new file mode 100644
index 0000000..7849df2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Death/Anim_KA_Death_Underwater.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5374155f1ec3f6ab90b99a649c7bdc8c00ba023940004da70568d334fec54a28
+size 4185864
diff --git a/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_End.uasset b/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_End.uasset
new file mode 100644
index 0000000..df58db1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92b837478f21407be5f2e84c0130c013f4941b43fcac2e528418ffbde70b5ea1
+size 1190093
diff --git a/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_Loop.uasset b/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_Loop.uasset
new file mode 100644
index 0000000..4e8a430
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:93646c59c74db704f858cf7288e673850d0afc788a34fe150c275acaf48ee3c1
+size 3269082
diff --git a/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_Start.uasset b/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_Start.uasset
new file mode 100644
index 0000000..6c7997b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Equipment/Anim_KA_Lantern_Equipment_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5c31ed64791e7919911333a4cf1d05d6f195667a05ccbacd1d0cc050c5d9446
+size 924121
diff --git a/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_End_Witch.uasset b/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_End_Witch.uasset
new file mode 100644
index 0000000..804f790
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_End_Witch.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be13fda3e6e8fc9c24033857053efa5965dd4e2bbe03cb86940f9870f71c1bbf
+size 1101169
diff --git a/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_Loop_Witch.uasset b/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_Loop_Witch.uasset
new file mode 100644
index 0000000..5244d1b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_Loop_Witch.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e2099edd2b5abf80a7ec53785cffb3dafccb5a8f5c09ecc20a13f50dd0bc015f
+size 400628
diff --git a/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_Start_Witch.uasset b/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_Start_Witch.uasset
new file mode 100644
index 0000000..775628f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Fly/Anim_KA_Fly_Start_Witch.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:774a0350fc78f35c6858de7da1311553b5233f78cffcdfae5487c8a7fd4c37d4
+size 529275
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle01_breathing.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle01_breathing.uasset
new file mode 100644
index 0000000..28dc47c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle01_breathing.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:db6b862913441a94ea922dff8f7a19b2187f142fae28a172edc4e0a2959f39e7
+size 2454334
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle02_LookLeftAndRight.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle02_LookLeftAndRight.uasset
new file mode 100644
index 0000000..1eec048
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle02_LookLeftAndRight.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c630e6a6bc93afaefacba958c92e206dfd16b7c943199adb8475b0d52f5a6f54
+size 2534534
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle03_LookAtHands.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle03_LookAtHands.uasset
new file mode 100644
index 0000000..3c5346a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle03_LookAtHands.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:77df816d23bb32cd372dd9faa47b3b0c87d03c1a8cdcf8d84ea48e74832a8fd6
+size 3874662
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle04_LookAtFeet.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle04_LookAtFeet.uasset
new file mode 100644
index 0000000..b3e8e56
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle04_LookAtFeet.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d6976d8904d4159e1ba49d7fcc6e69f6fbadfaa3e3e8cd6d09ef07307e0c060
+size 2478147
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle05_Stretch.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle05_Stretch.uasset
new file mode 100644
index 0000000..afd8012
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle05_Stretch.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0302fcab97be03cbd7621de36c07c4d8b87936c10d99929892304e10a61ed292
+size 2753018
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle08_ComeUpWithAnIdea.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle08_ComeUpWithAnIdea.uasset
new file mode 100644
index 0000000..09db58f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle08_ComeUpWithAnIdea.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3b9d2120c6fb94aa53aff4720c70ad2504fb58f435fb0ffe833a70bdca6b79fa
+size 3856675
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle09_Waiting.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle09_Waiting.uasset
new file mode 100644
index 0000000..23227ba
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle09_Waiting.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d7e3ae2aaae882aad1efb024a8418c54d4f065bed4622ef9202561f665f4d168
+size 2413423
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle11_LookingBack.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle11_LookingBack.uasset
new file mode 100644
index 0000000..813568b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle11_LookingBack.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6f798023316c6a6ee12c783807d945487eec745a84d6b438780684f8833b5536
+size 3567739
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle12_LeaningForward.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle12_LeaningForward.uasset
new file mode 100644
index 0000000..7e44ea1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle12_LeaningForward.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a182f00e8a76299f192d9685e4be345f96dbb9e39347ca555f1cc3f55a5fa35
+size 3511273
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle16_WaveHands.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle16_WaveHands.uasset
new file mode 100644
index 0000000..4e7896b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle16_WaveHands.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d1b0d798456c990ec3156466fc6c63fdafac9f794133e72cd8d76ff632c47f89
+size 3353076
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle17_StumbleAndFall.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle17_StumbleAndFall.uasset
new file mode 100644
index 0000000..3b15c1f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle17_StumbleAndFall.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:de371324bfa58dc3f6214bc0473e8d6fb1767365335bbc77eb6efc22004ad3f7
+size 4042009
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle18_Shy.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle18_Shy.uasset
new file mode 100644
index 0000000..3768e05
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle18_Shy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0b15c1da039acfaf1933585e095a2ffa8b2f12dff8c736bdb7ad4030fba9bd5e
+size 3588069
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle19_ShyRefusal.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle19_ShyRefusal.uasset
new file mode 100644
index 0000000..ab3feba
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle19_ShyRefusal.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:828f20ed20fbc6ec2084c01cd795c54ace9da2ee563a433c6c521a98a8b5a478
+size 4697676
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle20_TriplePose.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle20_TriplePose.uasset
new file mode 100644
index 0000000..a807201
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle20_TriplePose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:524503ffbfea465e22995aadf802e9c60fcb21edfe135bc786f1614819f053cd
+size 4093982
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle21_HighFive1_1.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle21_HighFive1_1.uasset
new file mode 100644
index 0000000..8d32eec
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle21_HighFive1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f005db7dcbaaf40d8fc10b27f804ea36fb06acd7f99532c466112e0ff083c19f
+size 1778971
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle22_HighFive1_2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle22_HighFive1_2.uasset
new file mode 100644
index 0000000..d5dd0c4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle22_HighFive1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e05575ea7cf7ea7b9a6211f43fa3de21bf2c081b5748dbba46321a6ac5de31bb
+size 1798195
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle25_Cheers.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle25_Cheers.uasset
new file mode 100644
index 0000000..1414c1d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle25_Cheers.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7db3bf9cc8329fd521133ea5090c8ae0f8d037329e1590ff4e008d70818f7af7
+size 7298121
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle26_Shout.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle26_Shout.uasset
new file mode 100644
index 0000000..e32314d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle26_Shout.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9206325a2ca2797375f84f9e542b40181e30356aff75bac3caf0178375894515
+size 3495233
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle27_Angry.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle27_Angry.uasset
new file mode 100644
index 0000000..130d55e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle27_Angry.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a144a34bd79643e6e33fbaa06ae494bc29a984349142992bc907bf2d36f90b3
+size 3141854
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle27_Angry_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle27_Angry_Montage.uasset
new file mode 100644
index 0000000..4b71c64
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle27_Angry_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b94fcd9781f5126d776fd44b68a2bcdf2468db49cd581dbf0678676d65c4881
+size 9113
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle28_Laugh.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle28_Laugh.uasset
new file mode 100644
index 0000000..901ba26
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle28_Laugh.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f9aad12697d43f4327c338db8f4c9862304c34bb1e5c73365cf0cee65ca64282
+size 3471003
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle29_Surprised.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle29_Surprised.uasset
new file mode 100644
index 0000000..afe0158
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle29_Surprised.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b72c3f09e38cf06e4c8181483542ee5c125ae28b43206d62c3c7753f0c3870f6
+size 3148812
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle30_Stretch2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle30_Stretch2.uasset
new file mode 100644
index 0000000..f01c563
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle30_Stretch2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0bceb7d174bd23223f9f6e3a7cbeb822356a0207e7598a96f9486735bb2b35d3
+size 6617988
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle31_PickUp.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle31_PickUp.uasset
new file mode 100644
index 0000000..262aa27
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle31_PickUp.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:842397d3b24edd721d694263872557e1850bdc3bc5b1923469dc553516b7d5a8
+size 3169185
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle32_LeanAgainst.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle32_LeanAgainst.uasset
new file mode 100644
index 0000000..999eedc
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle32_LeanAgainst.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c90fe876be3f610a54ec0e3ddbd822c1e7a92a7f6e118adee31624412b5addd2
+size 3575485
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle33_Hug1_1.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle33_Hug1_1.uasset
new file mode 100644
index 0000000..84e5d8a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle33_Hug1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb737c11593f4f6eb560798d7a49305f5d4c2ab83427c4c25f8a786e3c5b30a6
+size 2548852
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle34_Hug1_2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle34_Hug1_2.uasset
new file mode 100644
index 0000000..494bed6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle34_Hug1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1e32645fbc58000e26ef1432645e6a13c97318328c18bb6b3a589ae4f7384d1c
+size 2537259
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle35_FingerSnap.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle35_FingerSnap.uasset
new file mode 100644
index 0000000..ea2213d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle35_FingerSnap.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4266e60f851c9b6301cefee7e908a52e3f8ab37d78054df8e26be463e365072
+size 2594887
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle36_Yay.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle36_Yay.uasset
new file mode 100644
index 0000000..b2e5918
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle36_Yay.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd91aef80000d75a4d540259347f5bffe6f3c9fd54f64a16df440df0cf790c3f
+size 2480389
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle37_Tsundere.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle37_Tsundere.uasset
new file mode 100644
index 0000000..560eeac
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle37_Tsundere.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:300d902868ad6bb2a26bcb3afa4c0f82357fdaba3a613e60f4778f3f644f9afb
+size 3559452
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle38_Cry.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle38_Cry.uasset
new file mode 100644
index 0000000..9d1b454
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle38_Cry.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3bac95c3aa003616c2f3e6e280194e85f3427a19058d7e0481989141db09f27a
+size 3943184
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle39_CuteArmUp.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle39_CuteArmUp.uasset
new file mode 100644
index 0000000..6d20f04
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle39_CuteArmUp.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7023c757c02c8e445dea441624be9114ba7172c35a333bdf98d366edafca87cb
+size 3099177
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle40_CrossLegs.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle40_CrossLegs.uasset
new file mode 100644
index 0000000..7417fc0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle40_CrossLegs.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a6409361d0c210a7a0b2003ddfa01107a58334f55a34597c7010d06f35abba8e
+size 4614398
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle41_CuteShyPose.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle41_CuteShyPose.uasset
new file mode 100644
index 0000000..c2e7009
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle41_CuteShyPose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2910cad6b1205251d1515693f2b0f450011cf6cace3ad1c98f0c9998bd6b029
+size 3535266
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle42_Taunt.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle42_Taunt.uasset
new file mode 100644
index 0000000..b5aab4a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle42_Taunt.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efceb0c79d248898155bbc4ed32b64f320eed2368e9e33ca4104568b40aaf40c
+size 2910031
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle43_HandOnHip.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle43_HandOnHip.uasset
new file mode 100644
index 0000000..70e4e74
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle43_HandOnHip.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be82724e1e983a678bdd77e57c5cea2f20559e79e49ec8c081b5e6ca615248f6
+size 2937589
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle44_GreetingBow.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle44_GreetingBow.uasset
new file mode 100644
index 0000000..807da50
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle44_GreetingBow.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b32c17c660916347e366802befc2944f061145452cba46144989099be450632d
+size 2849367
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle45_WaveHandSlightly.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle45_WaveHandSlightly.uasset
new file mode 100644
index 0000000..d9b9dce
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle45_WaveHandSlightly.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ca9e537f9c508e4fe5f744aecdc1f3578d0498f004d0caadcd1f26653f422399
+size 2957983
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle47_Scaring.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle47_Scaring.uasset
new file mode 100644
index 0000000..90c248d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle47_Scaring.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6cefd5cc9f463694ad60f366040408226651a4c8e59636cc050b703883d15c30
+size 3307856
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle48_TriplePose1_1.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle48_TriplePose1_1.uasset
new file mode 100644
index 0000000..a3d202e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle48_TriplePose1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ec652fa008119cc57e9dba0e48505839694a2ca3d7882f3cc0337a5a3e5a21a
+size 3952331
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle49_TriplePose1_2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle49_TriplePose1_2.uasset
new file mode 100644
index 0000000..5cdd164
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle49_TriplePose1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0758fa855627863463e21c9e79c66cc40a7d76536341c87bb18eadede9c94b01
+size 3952371
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle50_StandingTalk1_1.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle50_StandingTalk1_1.uasset
new file mode 100644
index 0000000..d840401
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle50_StandingTalk1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69c6d5ee20822fd2adb5f84c168bacd8a8169ada90ecb3a71e4784eacd21c64f
+size 5652551
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle51_StandingTalk1_2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle51_StandingTalk1_2.uasset
new file mode 100644
index 0000000..e7c913a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle51_StandingTalk1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d697ef9ef435efe2c5128eb1c1b3a169d62c324e6683de18f32ef9455dd7c9b9
+size 5524261
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle52_Curtsy.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle52_Curtsy.uasset
new file mode 100644
index 0000000..3108563
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle52_Curtsy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:884711ad2f11d2a5e6f3b26d74eac74aa4783e3570ee5fd40df15f74e104bc58
+size 2835747
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle54_CartwheelAndBackHandspring.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle54_CartwheelAndBackHandspring.uasset
new file mode 100644
index 0000000..9b5d01d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle54_CartwheelAndBackHandspring.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b8a1d55c066a1147008e784579774d6669bef860e77c06558a36ed2c3a130485
+size 2242978
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle55_Backflip.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle55_Backflip.uasset
new file mode 100644
index 0000000..1971075
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle55_Backflip.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:52c7dd0a7c6c96e42335868b7553837c52c2c94a896ba63f12bcbe44fc92ab59
+size 1766747
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle56_Handstand.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle56_Handstand.uasset
new file mode 100644
index 0000000..cc98e08
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle56_Handstand.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:678fd1ace4df3cb2f69ceefa3acc9d541c985bead197b9be10ecc94383d3316b
+size 5059443
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle59_Kiss1_1.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle59_Kiss1_1.uasset
new file mode 100644
index 0000000..0f99d34
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle59_Kiss1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:989cb76cc45abdda5e9558bbd7ff99bf5616995813d68d8fff672e27200b09f9
+size 3035712
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle60_Kiss1_2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle60_Kiss1_2.uasset
new file mode 100644
index 0000000..92ac14c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle60_Kiss1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62e6678a14da7328ac66720cffa80dab0de2a7c53c1dd57b2eab42e16bbc2f2d
+size 3078145
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle61_RockPaperScissors1_1.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle61_RockPaperScissors1_1.uasset
new file mode 100644
index 0000000..8ba47aa
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle61_RockPaperScissors1_1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bfa13cb5df65be20d059e42ba439cdd977684e5a378ab7e01ac2448ea8cad71e
+size 3543632
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle62_RockPaperScissors1_2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle62_RockPaperScissors1_2.uasset
new file mode 100644
index 0000000..84e16e7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle62_RockPaperScissors1_2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:507b254b3387430e1b4cb4d070fb56bf036bd9639f84b744250c98a15d8dcda6
+size 3503204
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle65_ThumbsUp.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle65_ThumbsUp.uasset
new file mode 100644
index 0000000..6dce8f7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle65_ThumbsUp.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e536e4ac4b4535e52342da1d9772154736d9ecf4d5b00643c9387e26e01ca2b
+size 2591196
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle66_JumpForJoy.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle66_JumpForJoy.uasset
new file mode 100644
index 0000000..f4b643b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle66_JumpForJoy.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5ba5d111965c103786bfc09fbf02f909101190837c0ee537ffcc149c5f973608
+size 1940685
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle67_FeelDown.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle67_FeelDown.uasset
new file mode 100644
index 0000000..536ecbb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle67_FeelDown.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2e7c31a155cf417ba952b423503eaa55170388266f62af72b6f1182a18c8e11
+size 3307317
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle68_Surprise.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle68_Surprise.uasset
new file mode 100644
index 0000000..0bf0f86
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle68_Surprise.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dddcdc9974e64fa82776f5a56f6fbb892d80850ac9a57575731b49835a758c88
+size 1848956
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle69_Surprise2.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle69_Surprise2.uasset
new file mode 100644
index 0000000..843c9fe
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle69_Surprise2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a08fd6b2c96819096913c03ed5cc8e64a2df4c9c662759d22b600b1521da9c1
+size 1916285
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle70_ChangeClothes.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle70_ChangeClothes.uasset
new file mode 100644
index 0000000..7ae2b93
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle70_ChangeClothes.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7584652f0430d2aaaf54c327d6faddd8d7384ddf57d994bc9a07826e384abb41
+size 2750008
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle71_CatPose.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle71_CatPose.uasset
new file mode 100644
index 0000000..9fd7383
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle71_CatPose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:693e4c2b3b90854107448096a74529395f0ebb8328e30e3d3f0dbc18e4cf9df0
+size 2190105
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle72_LeanForward.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle72_LeanForward.uasset
new file mode 100644
index 0000000..697649f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle72_LeanForward.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1ebf5bcefd8b1d989d40dcd31acafbce5c78f2f1ea962dc03c0b186435666bd3
+size 2170739
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle73_IdolPose.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle73_IdolPose.uasset
new file mode 100644
index 0000000..6137a2d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle73_IdolPose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:741b6d3df09da87ecb5122717a114bf4a82a4f4fe8c3f1b9d107b9d0c6e2f710
+size 2189883
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle74_Cheer.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle74_Cheer.uasset
new file mode 100644
index 0000000..7cd5902
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle74_Cheer.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5df9092cae67c7e3dad033280c326d62c77a2b762ed536c9c7c3f8b2ccc8c59d
+size 2447539
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle75_Pointing.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle75_Pointing.uasset
new file mode 100644
index 0000000..febd6d2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle75_Pointing.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71ee4e9d97bb0a8780ddd6209997179a1c06e02c76b60395d9006cd1d9feefa3
+size 2480095
diff --git a/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle76_MotivatedPose.uasset b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle76_MotivatedPose.uasset
new file mode 100644
index 0000000..7f885f6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Anim_KA_Idle76_MotivatedPose.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c866b236ad0959ba60a874f1233beaca6852e978ec772c417139f0d65a7df08
+size 2464028
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle08_ComeUpWithAnIdea_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle08_ComeUpWithAnIdea_Montage.uasset
new file mode 100644
index 0000000..8e16a9c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle08_ComeUpWithAnIdea_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c7a399bc92b5c4be3c30f20e120030080bdcc392e35a3f821e2571e2cec9a28
+size 9020
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle09_Waiting_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle09_Waiting_Montage.uasset
new file mode 100644
index 0000000..d80aaf9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle09_Waiting_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea48e851b832373ed92a302201f52bf0383df406ef66185072abb6cd221142fd
+size 8786
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle18_Shy_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle18_Shy_Montage.uasset
new file mode 100644
index 0000000..20d6475
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle18_Shy_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62ebab6cbbfb76227e6d385f8648e614657e23a31a412689db477e35f893511a
+size 8907
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle26_Shout_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle26_Shout_Montage.uasset
new file mode 100644
index 0000000..b09abaf
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle26_Shout_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c5aa5d28217b559eabcb3830a6c9653d775e75351df9fb105a53e753cf1b881f
+size 8866
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle28_Laugh_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle28_Laugh_Montage.uasset
new file mode 100644
index 0000000..8ece82f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle28_Laugh_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4eedc32a3f5fa0ecd1ec87e9268104272b3e75121831cef0d8e3f23ff451e114
+size 8722
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle29_Surprised_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle29_Surprised_Montage.uasset
new file mode 100644
index 0000000..a206656
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle29_Surprised_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0e0718c8bfc60f807ca9f145e8c5d7b56efddabd58fcacba5d1172ce7777b87b
+size 8953
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle36_Yay_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle36_Yay_Montage.uasset
new file mode 100644
index 0000000..9af1623
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle36_Yay_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abaa48004889041e774addd87a9019d67bb4805b0a89f63381e1d5d6f660c8b2
+size 8898
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle37_Tsundere_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle37_Tsundere_Montage.uasset
new file mode 100644
index 0000000..f040980
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle37_Tsundere_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f4f4fe0bf9818353d1dfbbfcb41adb65aac670b8953a5e7aed51ce66fe900b9c
+size 8864
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle39_CuteArmUp_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle39_CuteArmUp_Montage.uasset
new file mode 100644
index 0000000..e338953
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle39_CuteArmUp_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2bc00de875a7d364c2fa2f586065ee95207386bf4a7c6644a513afbbbbd207d3
+size 8995
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle40_CrossLegs_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle40_CrossLegs_Montage.uasset
new file mode 100644
index 0000000..6d94f2d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle40_CrossLegs_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9dd29096915e362a5d2506ff24ff5c240b7dd976452bf1324ddb2b8a5f21e544
+size 8700
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle43_HandOnHip_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle43_HandOnHip_Montage.uasset
new file mode 100644
index 0000000..5605ea5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle43_HandOnHip_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:985197c38082f45ee1e3ee3cb3722356684817c9a775cafc7c51002d3702af11
+size 8983
diff --git a/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle68_Surprise_Montage.uasset b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle68_Surprise_Montage.uasset
new file mode 100644
index 0000000..e8b428c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Idle/Montages/Anim_KA_Idle68_Surprise_Montage.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1d72a01c4396215ba41a2ca1acb4bc2f61e1abad974395b704f998238ab9b9ef
+size 8931
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Idle06_JumpAround.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Idle06_JumpAround.uasset
new file mode 100644
index 0000000..71ed9a9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Idle06_JumpAround.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5955244b6c9706c367ac6c580e23bce01d3369e752e5eee6d1011be52eef4653
+size 2329935
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Idle07_SpinningJump.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Idle07_SpinningJump.uasset
new file mode 100644
index 0000000..0e7261c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Idle07_SpinningJump.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f8501a108b913c79b7b3f6b1507f8ee66e175cec85bc6d5328f5fa086845814
+size 2603536
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_End.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_End.uasset
new file mode 100644
index 0000000..6047bc4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eb9081a4899380afe0e2416b9453c6aba5de49c16d2e97f105f5088d3b6c3a58
+size 543233
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_Loop.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_Loop.uasset
new file mode 100644
index 0000000..ddcb459
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e799937ad9fe883688050ddd158242bcc6af164c88c0de18527bcdb3289fcac
+size 206963
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_Start.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_Start.uasset
new file mode 100644
index 0000000..de488f9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump01_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13523bd729eef11d7504a8a8d7d2ac2b2f95a2ac217cd110322c87953e3b9e74
+size 514461
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump02_Loop.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump02_Loop.uasset
new file mode 100644
index 0000000..05b83de
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump02_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd9a876ed46ba043a24d913a5733686d435bee2c978ad640e5505d9e0592818b
+size 219764
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump02_Start.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump02_Start.uasset
new file mode 100644
index 0000000..e9a2916
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump02_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd3db11ed508a07a765db67d37ff4c9b1f4cecd550f7d788fd0051ea399c0127
+size 533725
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump03_Loop.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump03_Loop.uasset
new file mode 100644
index 0000000..fe6b590
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump03_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:449e9d284787eb26991b003e53811e21dddad70f2299a93651674cc21e12ad3e
+size 194869
diff --git a/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump03_Start.uasset b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump03_Start.uasset
new file mode 100644
index 0000000..d6fdd84
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Jump/Anim_KA_Jump03_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f147ec33f97c946b42c53bf83f22228057fc443461d9025eec5474a5a266a012
+size 516382
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01.uasset
new file mode 100644
index 0000000..717418f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a4df08439a4dbe7606180b5b00eb17a786e368eba93baaf3996946ecb07e016
+size 377200
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Pivot.uasset
new file mode 100644
index 0000000..444a187
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:994b89e332be182e6d28633aa943756943736e6a8a5aee11d496ebca6d2ad725
+size 805788
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Start.uasset
new file mode 100644
index 0000000..26bfdab
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9f8905dac155969f5997a22aa544058581971d2ff400f8f569885dadb5ce109
+size 648388
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Stop.uasset
new file mode 100644
index 0000000..9b8d51b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run01_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c34f6456a100ead0cb9c75a7c1328d78c133ebc55279c3682b92b49de4a638f6
+size 1059679
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02.uasset
new file mode 100644
index 0000000..181a316
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd51af468492fe67cc99bf7ae0481b37e9f5a2b9ddd5ddbfd651059b0ae7737c
+size 427368
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Pivot.uasset
new file mode 100644
index 0000000..b1f301a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a947846ddbf46027e23321646ae56a291381c010eb21866ddafc33f7504281ec
+size 804174
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Start.uasset
new file mode 100644
index 0000000..e455fad
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5d2e6864c212226d63a24c213e48861e4472a36e1eb6ace464c48eee4d434991
+size 654635
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Stop.uasset
new file mode 100644
index 0000000..478b82a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run02_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:defebf112448b9afec0563d839cc7b1cbd1cbf11cdf7f9d279d1e55bd75773e9
+size 1059589
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03.uasset
new file mode 100644
index 0000000..737e738
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76e56eac0d9770c05a4ccb8438fe1d711884f2fbb678fa2fdfc0ae8077e07bc1
+size 437714
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Pivot.uasset
new file mode 100644
index 0000000..24facd1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8fbabdd8625ceccd53f6575bc8f33b26872b889aef358001be7fa8db1cfddd33
+size 818854
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Start.uasset
new file mode 100644
index 0000000..fd241bd
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aec7e05430d7f7899115c9a94b4d9caa45a52bdf8e66ab82ee37405ff755c6be
+size 670833
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Stop.uasset
new file mode 100644
index 0000000..3c7eebb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run03_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f672ddc3f6c876ae49f4c37bc7b0c88a4557fbb55b597a7764d6ba8f8bbf7843
+size 1070323
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04.uasset
new file mode 100644
index 0000000..5e61730
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:105a643cb868e9c7d0911ed317685903c48e5bad8ed8dad164199d67c23d78ae
+size 435258
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Pivot.uasset
new file mode 100644
index 0000000..9634b98
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8c5839dd772362b44516fafea687bb256b41f25afd1ab2ebb42569d69aafb8b
+size 822172
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Start.uasset
new file mode 100644
index 0000000..e099088
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6518449c2b1c2fb50ed6f190340953ebdce45f3ba3f776b2b59f013b6f74a290
+size 654335
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Stop.uasset
new file mode 100644
index 0000000..aaa8910
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run04_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:702d57d6e3780a09cc0c9c57287a22e3850d80c2acf048a58a7545e1d7092c93
+size 1078404
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05.uasset
new file mode 100644
index 0000000..ef6b1ed
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aaec3cc1f7fd0747d8e799ca3530d5d2ad87ccd706da9b40738f179bbf4668ed
+size 381515
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Pivot.uasset
new file mode 100644
index 0000000..5c49415
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf84674b31389be4e26d6b1dd341dee8cdaf68bff57878fb7266199dbf956ad0
+size 809060
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Start.uasset
new file mode 100644
index 0000000..3c6126f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:690ef2808b7190c6d5d7436dd245c481ce53af237362cd916615a62d3e82f9a3
+size 684681
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Stop.uasset
new file mode 100644
index 0000000..b130b41
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run05_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:18e90fb1d750f8cc68f776df57b1d49a79367e79a0351084a2596a3c5e46a323
+size 1041410
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd.uasset
new file mode 100644
index 0000000..155f1e0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:415e55b4f6f36dc22bb32a4b2958492c3554130b2cfde765512f2b5c550d3b70
+size 364862
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Pivot.uasset
new file mode 100644
index 0000000..1507e4b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:282ad6e94cec747cb5b38cee1f64b4ac8f38e9170c569dae68cb87bcaf5a255c
+size 892544
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Start.uasset
new file mode 100644
index 0000000..64b4952
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c89a559a7ef209ebcecd43e326b2d5b5f3e0d73108bfea55d4ffecf62fd44c0f
+size 650892
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Stop.uasset
new file mode 100644
index 0000000..20e16d2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Bwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c2e5f1a0d0cc2d1ed43e95b1d5ef647bc664c6e62a3ec062990a158ca1a3488
+size 1053239
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left.uasset
new file mode 100644
index 0000000..c9876c0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c5b5b354ecc645dc882c3a05eb9f0ca934afc46b2bd3560eea02bb02ab9f3511
+size 362664
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Pivot.uasset
new file mode 100644
index 0000000..9b162f5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:450eeafd0fd21beaa172f9c44140c9be362779c88b4dd08ba07859644098d9fd
+size 941725
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Start.uasset
new file mode 100644
index 0000000..dde0492
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b6f4b7703477142daa114ab34494cc35afea2e6e39267a4fe4d3aa4f6fb43c63
+size 654858
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Stop.uasset
new file mode 100644
index 0000000..10cb909
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Left_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e116f64dd9676950f09a65796f1c9fb770d6ac165a503187f5d7ff0de794263
+size 1053265
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right.uasset
new file mode 100644
index 0000000..73f00d7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fdcbd8bbc9a38989e94601409a8ca6ef3f2a8fcc386491138809c1c7f6c17ba3
+size 374214
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Pivot.uasset
new file mode 100644
index 0000000..3eb1911
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71b572347c3c3ab010ee18b47949e5a413ed0477fc86cb5b74801706cdc1d5fb
+size 1028827
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Start.uasset
new file mode 100644
index 0000000..0bb8f43
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cccae8e1eef9a2e009b86a24bf346d0446110046d96510ca08578ac72f8b431e
+size 657353
diff --git a/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Stop.uasset
new file mode 100644
index 0000000..5c5d197
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Run/Anim_KA_Run_Right_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:adcd6581ef6ee362cf1ee26e742db6f22fd75cdc8b1e1b22ed0a477b6e194df1
+size 1076329
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit.uasset
new file mode 100644
index 0000000..c2f9200
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a8ef43ddea4831df34b4ef42681fad631fdc6a1f579b0cf2be67cbd3614ad4a
+size 3883942
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_End.uasset
new file mode 100644
index 0000000..ee3b78f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e090d2b08fc8a0202bc4f7c7d159a287c55e986d96b368e5806d3a7199c3c160
+size 1725454
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_Loop.uasset
new file mode 100644
index 0000000..28b0fde
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e2e8912947964379b17e4f4b378819bd0d8b13eae904aeb23f7534ae4dad14f4
+size 1421903
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_Start.uasset
new file mode 100644
index 0000000..ea11026
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13db69dac0febee5b11257677365eed60e256f6cdf3dcbc7c10149350b009c7d
+size 1319165
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_to_Idle46_SitFloor.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_to_Idle46_SitFloor.uasset
new file mode 100644
index 0000000..8f15b14
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_to_Idle46_SitFloor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b656003792d88dac5529371d765407670cb8daccd2058b9848b7b967442b791
+size 934256
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_to_Idle53_Seiza.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_to_Idle53_Seiza.uasset
new file mode 100644
index 0000000..6462406
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle10_Sit_to_Idle53_Seiza.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c6fc105c475308da3a3f3532d3ac9a3f615b4b771522c74aaa9891b69b24f70
+size 1324901
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle15_TieShoelaces.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle15_TieShoelaces.uasset
new file mode 100644
index 0000000..e1fb7f0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle15_TieShoelaces.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98dfbfd558392a7f7d3d7ff90b884d5ad40fe6857d50e55dedc5040451c950a9
+size 3558926
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor.uasset
new file mode 100644
index 0000000..7b2e94b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6587d6cabcb4bd23c0247a14cd985daece5e042dbca76e6c892c66f5d4fd0199
+size 4579471
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_End.uasset
new file mode 100644
index 0000000..7609096
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:285ed75d4bb762521d79f804ae5df88f032f862c37b6fddaebf4dc5131d893bb
+size 2067449
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_Loop.uasset
new file mode 100644
index 0000000..5ead4e6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1f628928c48973172f4565528787eb740d9cd7b20d2dd8be012ce4ed0e63563f
+size 543477
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_Start.uasset
new file mode 100644
index 0000000..a328009
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c341e723a12feb737a5f15ca4fcceb29b21af501862a83882cac375986bb769e
+size 1228883
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_to_Idle10_Sit.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_to_Idle10_Sit.uasset
new file mode 100644
index 0000000..d23556c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_to_Idle10_Sit.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a2b6f3e6951e5d4272574318b9af1eba3cab22202658bd6a8b58cb5192cb16d
+size 934205
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_to_Idle53_Seiza.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_to_Idle53_Seiza.uasset
new file mode 100644
index 0000000..b4db783
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle46_SitFloor_to_Idle53_Seiza.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:10adc9f32d75437b9756c855bb55d2dcbaa7681afa63410e44c544243cc3a2e4
+size 1333616
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza.uasset
new file mode 100644
index 0000000..da229ae
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d381963189e08d261a17ef31620dfe6f6869aedf8bbbeafe12e4e15ca6b80880
+size 5873487
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_End.uasset
new file mode 100644
index 0000000..8ce5bb6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fb4a2396860d99c5f390b9b096912ef51f9a89d0ab58a7e03514b991882c3761
+size 2062399
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Loop1.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Loop1.uasset
new file mode 100644
index 0000000..848b359
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Loop1.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0783e87f61ce987c42a18fe9db6b259751626c36f7024338e0dc6d6e3e44f28d
+size 543464
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Loop2.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Loop2.uasset
new file mode 100644
index 0000000..8c02652
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Loop2.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1ccefb3cf3b4fc7df1a4eeef8625ed87e435de295d0bdcbf3955c49f8c743f9c
+size 2365817
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Start.uasset
new file mode 100644
index 0000000..cba6c57
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97109b2689bdfdef1a536d7f7926b2f1b3fa95e503ee03e4d636c57a76dc0cee
+size 1920456
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_to_Idle10_Sit.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_to_Idle10_Sit.uasset
new file mode 100644
index 0000000..9ca6558
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_to_Idle10_Sit.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e77c8b59d424faafc8dba52985c819938dce609f26d60e0628352e59c06b496
+size 1205573
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_to_Idle46_SitFloor.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_to_Idle46_SitFloor.uasset
new file mode 100644
index 0000000..7e3f84d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Idle53_Seiza_to_Idle46_SitFloor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0f427367ecf92d337a67488caf20fff2d34e1e87172dd581b6bbff6f3e32279
+size 1345264
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged.uasset
new file mode 100644
index 0000000..f2ea77a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e5ac4f78b348da71177a85718439bcb46d236496a3add1df9b46f120a422c75f
+size 3763177
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_End.uasset
new file mode 100644
index 0000000..fcd6851
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:832fd7243cb7c4c21db3177393ce7e12d3601c833632672390a402f2608f68d0
+size 1553855
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_Loop.uasset
new file mode 100644
index 0000000..aba4aa7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c18f3270957d165731650e02113fee8fb6f68f130f5d9f65c672af48e636122a
+size 1137121
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_Start.uasset
new file mode 100644
index 0000000..a9d3311
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegged_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9d0e11de9e95f98136df6377f5450b27dbdde97e62025ce67efeabbafc3c6fcc
+size 1153797
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs.uasset
new file mode 100644
index 0000000..da2c3c7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ba16d2cb4c0cc967912236ee48cb49cc463c73fe4702f6867366a4bb0417db1
+size 4869988
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_End.uasset
new file mode 100644
index 0000000..aa6f5d5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80ccd2bd0e97ec7940527e1747e688212bedc7ee21541e5b7f99264fdac195bf
+size 1290108
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_Loop.uasset
new file mode 100644
index 0000000..793be87
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6b08f6615d91c5fa2e246f4b594b061e7e676eff289725fb609ce400b441c5fb
+size 3813194
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_Start.uasset
new file mode 100644
index 0000000..20ccde3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_CrossLegs_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b73869183c76b766e757e6596fbd0fdb9e14906235331998256776ae4841b673
+size 905043
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_End.uasset
new file mode 100644
index 0000000..449f5a9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:515a8b95dc7642259431cd010d7ff842e3a98ef8d3657dbdea16bac87a1458e7
+size 1434252
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless.uasset
new file mode 100644
index 0000000..fb1ac1a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:713e19da8489ce0b7b3cd8a81a62fd0948f79c55d44494938c5e7bf8b5bd5713
+size 4794928
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_End.uasset
new file mode 100644
index 0000000..99fa57e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01ecd6d52d4759779333c12f4f413753b44c066ab7a0b45d1cf5a68789220ed7
+size 1463806
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_Loop.uasset
new file mode 100644
index 0000000..5eedf79
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e5c28828919d1ed296c5647b76f5e013ff9b4e956f85a92d97d78e6dfe0d05e2
+size 1091278
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_Start.uasset
new file mode 100644
index 0000000..493cee6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_FeelListless_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9911a4c65b4821bf17c200067a84f4719356853aa2673cb1dc7238ed96257896
+size 918818
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes.uasset
new file mode 100644
index 0000000..34d7add
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:beaa0513683e0fc0e458c4bf349605d2d744a3ec14c2088f76eb282bbc1742d8
+size 3286019
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_End.uasset
new file mode 100644
index 0000000..9d28cb0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:20e4d7cceebbd0d3604d8afc2b3f554b87dbfbbc3689c33b0870787c755746ac
+size 1003907
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_Loop.uasset
new file mode 100644
index 0000000..ea23128
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3c3f95942cb1f99c6ec78c5b075af2cc786b3520ae4918f009475e58868e8e92
+size 1637920
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_Start.uasset
new file mode 100644
index 0000000..7e4341b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookAtToes_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ca01534e7569fd0de67aed6edc3867aae62f633e129a82108129c02e43146cdd
+size 885538
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookingAround.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookingAround.uasset
new file mode 100644
index 0000000..2bca71f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_LookingAround.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:84f8f956e61b2631ebab2b9de3a47b3b24e45e1c258dbbf02aff9be52e3feef8
+size 1489221
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens.uasset
new file mode 100644
index 0000000..6b7e08e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46e8039b3a2079b31fef417b6f081194d0401f1f9813806ce2ad00e532ff8df7
+size 3311135
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_End.uasset
new file mode 100644
index 0000000..93b4916
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dbb10557338c30447c98a5f2ff0e8afcc4efd2ef6f9e496b76d3fdd3e4d9007c
+size 887630
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_Loop.uasset
new file mode 100644
index 0000000..6443e79
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a14f14e442cea2c9928cb7022475f5bd937f1715e8a8190a72bbebb398484aa5
+size 2590180
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_Start.uasset
new file mode 100644
index 0000000..d0cef78
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_PutHandBetweens_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:02600e4c6a6c7bbf2926c253e2d1eaefd4f4d4ac72cee43e13b9604a58d02fbb
+size 765597
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow.uasset
new file mode 100644
index 0000000..833408d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a94596aaa92d5287e86c968460ed6c73444a0fedcc3fe739dcb80f102ec12fa5
+size 4249849
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_End.uasset
new file mode 100644
index 0000000..8bcaf2d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a31b297b7b45979b33421a9d3ff101fc9b44af6ca28f308da8d6721815c7ebd
+size 1078941
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_Loop.uasset
new file mode 100644
index 0000000..66e4a21
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9cf06c1dec819282e7e07d3131a6b440a79af8b0eaacc238d0ac0b07c3ee675c
+size 1346765
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_Start.uasset
new file mode 100644
index 0000000..10b7be2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Sorrow_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:828ce5c82a785cdeff13802d7a4717dbf9c02ba6ac99b05a768e706d279bec4b
+size 651302
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Start.uasset
new file mode 100644
index 0000000..a434950
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b2387bb59b4cadbd3376a11953e9784d95acfc07d27fb93ad88cd7a3752094b
+size 1286485
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs.uasset
new file mode 100644
index 0000000..2d8275d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7c1a28f6db653f472bb3833bd03ee0048b20423dda382465d206fb7932df7194
+size 3764156
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_End.uasset
new file mode 100644
index 0000000..6994016
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:395770e81a6c2902088df2aa7acfdd75052de8b50b18e0c7f77b8c3a4bde8cc1
+size 1360509
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_Loop.uasset
new file mode 100644
index 0000000..58db101
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ec496b1170f367da091192c82ed2a84380de70755378cdae0039f0d0a25b9e49
+size 1008537
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_Start.uasset
new file mode 100644
index 0000000..491268e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_SwingingLegs_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c471e88bc1dcb9bd3bb10ead976b20b08e83a13c6f9048a6b164b3d45928dc0
+size 854545
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp.uasset
new file mode 100644
index 0000000..99777c0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1924a9d6dd6d5be97d6dd068c52c6759f976929a0ffeddfaa1e33ff4b67ca171
+size 3834980
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_End.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_End.uasset
new file mode 100644
index 0000000..1cb6e6e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e936f8e5cc4da8b6bc201a289687f756d2cacf0cb1e2f1302274e3496b84e46
+size 1457243
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_Loop.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_Loop.uasset
new file mode 100644
index 0000000..a8d3859
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7edca33c3a4721d8882f7bd82c1af18edf806ec2b709ebd1d753b08f13422527
+size 494812
diff --git a/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_Start.uasset b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_Start.uasset
new file mode 100644
index 0000000..8386b14
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sit/Anim_KA_Sit_WithBothLegsUp_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:953f4788bd754b85fc8c7dea0e7b575e9cbf43f24c79a5730b81ca92aaf585f1
+size 875482
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01.uasset
new file mode 100644
index 0000000..59933c5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ba3638e871a5862c791a28bb7e3d813686aeff1deedb347f0a8da7e3b57bd2f
+size 703297
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Pivot.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Pivot.uasset
new file mode 100644
index 0000000..1fceaa1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c3f0bc33a8c3df1a130de4260674deef5f7cce99fbafac508143f91aa880116e
+size 818903
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Start.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Start.uasset
new file mode 100644
index 0000000..4fc3847
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b11d7e6613478457c070dcd9df454bb0f3122542bed96ac28bb3aa617ee6d419
+size 1046315
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Stop.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Stop.uasset
new file mode 100644
index 0000000..60c8701
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping01_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01e7a6ae551fca0c1ab481134d179918fc7be5e8d1959d1673680179e5de5330
+size 1709045
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02.uasset
new file mode 100644
index 0000000..653fd7c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56d204434e73f474bef1d2e58f82a0b499fd7762fe5cad0e9686890be680c9fa
+size 655590
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Pivot.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Pivot.uasset
new file mode 100644
index 0000000..0a153fd
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2c2856cd40e605d418463c1b457281ccf579babbd63d58affec116afc529ed6
+size 817264
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Start.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Start.uasset
new file mode 100644
index 0000000..755e5f0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:53fae9ed2a6b3cc5674baa869a77f9a885b2904df49061523a7043f4a3830d09
+size 992406
diff --git a/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Stop.uasset b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Stop.uasset
new file mode 100644
index 0000000..f80e0d6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Skipping/Anim_KA_Skipping02_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:22b10ab130873bc524a77e64618a57579e847d281859a7fc4af8eeb6a8ba4392
+size 1698287
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee.uasset
new file mode 100644
index 0000000..db4755c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e035455de42ce50392e467b13d885b952bfc140dc4520027356e79308e28cf9e
+size 4316084
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_End.uasset
new file mode 100644
index 0000000..d4f99fb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4cdc7c0b2e6b7ed61fb3c472e783debb46e1234098f941c227ad62ae675ee25c
+size 1111907
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_Loop.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_Loop.uasset
new file mode 100644
index 0000000..ccac069
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76d5e2449fff6292ff891c128fe26a8fd2b2c46cf173a81df88887d91629cf72
+size 2972518
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_Start.uasset
new file mode 100644
index 0000000..58ac814
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_BendOneKnee_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e7dae0f2b4769b814307405f0c09556a5aa7635864c36440c29dc0a1d9ec7cf
+size 1097629
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways.uasset
new file mode 100644
index 0000000..115cbcd
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9ded06fd0a169aeebe16207c1b04073eefa6492cfa142ec6989288235c701ac
+size 5218049
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_End.uasset
new file mode 100644
index 0000000..bf1fc37
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:66a00662aaaf38f36f4baa3a96e6fcfa4f55a5b77dbfd6bb64f6c9b63703a7bc
+size 1599518
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_Loop.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_Loop.uasset
new file mode 100644
index 0000000..9e58282
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd4510465d18458e4342081c8c7a42b1ed2dea66357572cf3a5e3b3913e46d9e
+size 666288
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_Start.uasset
new file mode 100644
index 0000000..d9d8805
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_CurlUpSideways_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ddf4ef423410f3e2ddc8047ca6e3ec8bb135437e1ef2a24a37c5e095a63615ff
+size 1313089
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_End.uasset
new file mode 100644
index 0000000..75950ce
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:881fb153e37f7a83b9097b387b3a703719ce038b11953ab12c34ace2cb02d7f1
+size 2618528
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown.uasset
new file mode 100644
index 0000000..5166346
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ba999781572e7a4f5d5b671996f22bdcba026d358c2d76b685424300acf5570
+size 5291456
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_End.uasset
new file mode 100644
index 0000000..ec89922
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35f1b2b1b3d0d48a1257f01665b7ee2d87fd692b3b6043dc4d7af4301298bd7a
+size 1857512
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_Loop.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_Loop.uasset
new file mode 100644
index 0000000..3f7800f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9dfa41a55bfa87764a0d18f139c6ef043061890d044fc8d50ea66464c98066c7
+size 1384322
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_Start.uasset
new file mode 100644
index 0000000..51d46fa
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_FaceDown_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24d913244f808946c117e452338ae73d676fa16948050355e1e21f68327aa807
+size 1412291
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up.uasset
new file mode 100644
index 0000000..48c123b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8bfadc8993263e2edb1e03dcc4de9bfe343adaee7456154448edf094b55981db
+size 4693718
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_End.uasset
new file mode 100644
index 0000000..83c7bf7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61f7d23c0ef9efc63f1ae11312f6eab2e0b1a4c0df6f9db96a7d0563d60e9fdd
+size 1566107
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_Loop.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_Loop.uasset
new file mode 100644
index 0000000..86c6233
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ca4c00b7249323f2a46ca62a38b58978b62ebcb9c2cca3afa4e44f006080efb6
+size 3800339
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_Start.uasset
new file mode 100644
index 0000000..ffb3c71
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Sit-Up_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99594eae539cfa87001da01c4ec3720d1a423faf650368e687113a927f43e0e3
+size 944550
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Start.uasset
new file mode 100644
index 0000000..e731534
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e9953341a578ab2c360c74a84494c836be411ba3b47acf3191f3cd6dca1aab0
+size 2171025
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch.uasset
new file mode 100644
index 0000000..693c743
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb971d775d76c6d1e5d14bb2debda263e4b2b4dee33b93b2341aa5f8552b08f0
+size 5181632
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_End.uasset
new file mode 100644
index 0000000..f8605dc
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:adfa93ecc7506a8c099cd3aa4472c9a13c8fe99a51bcabed5cafbd151e09e84c
+size 1853334
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_Loop.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_Loop.uasset
new file mode 100644
index 0000000..7d8d247
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1693f879ef3e0140cb5e146b18e7467b30a2b7d944c2a54dda91aabda1d299d6
+size 2700231
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_Start.uasset
new file mode 100644
index 0000000..0a99368
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_Stretch_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee6ee1ef56c95f141e3280a43deea1c3900031ae76a2d85b1ba96f098d30ed8e
+size 1980929
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide.uasset
new file mode 100644
index 0000000..402a472
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:877baaf86d0b0d026ba59312e7aa3e442f28863a5fe36d8dd22a58fe763192f6
+size 4998960
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_End.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_End.uasset
new file mode 100644
index 0000000..9b72149
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e59ca3cddc568dfc6157077768b40f210fd8f780929d7d9fa63a26e115256b5e
+size 1414620
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_Loop.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_Loop.uasset
new file mode 100644
index 0000000..0312147
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bcb56171b7d4b79026d07b96fd56fec4c9a104814b9cd26cca58db75ff3bbe5
+size 678348
diff --git a/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_Start.uasset b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_Start.uasset
new file mode 100644
index 0000000..1ededde
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sleep/Anim_KA_Sleep_TurnToTheSide_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:22afc5a57e20865f1a65af293a35a602f06eb73535eacdce43364a774f79f1af
+size 1269443
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_End.uasset
new file mode 100644
index 0000000..62eec07
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9b4cc172701c001c66724eb0cb4261b04786c47147a5c9d31dc30beb58d8453
+size 1110298
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_Loop.uasset
new file mode 100644
index 0000000..a74299c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6765ee97993ee247f29e6057b4a4ac126ca71e7abd37b0bf2d55eb399239d4f5
+size 1852655
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_Start.uasset
new file mode 100644
index 0000000..bc9da40
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak01_Normal_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a209b6d3c107efddffa7bb92237da27b207c466231e813a2ea152eb0158debe7
+size 862568
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_End.uasset
new file mode 100644
index 0000000..57b88fc
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:283a997022474a55baa17870a3372fe0caf33a9c8b8918725f963f570ed32036
+size 1110333
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_Loop.uasset
new file mode 100644
index 0000000..855bce9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:464de3d5093ebcb1fdf596b7bfb0ce0e8e8a0a46013027b7cff2e4dc5cc45eee
+size 1847932
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_Start.uasset
new file mode 100644
index 0000000..c260092
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak02_Explaining_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74853f369f2db41f1d4771c2609df01fc630b97be34017b73f2f6f7caaedf4a7
+size 862692
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_End.uasset
new file mode 100644
index 0000000..8aff31e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:192f0928cfaceba64d68c468199153d03df8bb6149b12ed6c88def6d998fb86e
+size 1167313
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_Loop.uasset
new file mode 100644
index 0000000..b4dc44f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f5f8fcba7cd326de211b6db1986396e7a21970708b33f54ca9bfa4ae71ed1ace
+size 1953945
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_Start.uasset
new file mode 100644
index 0000000..24bb361
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak03_Excited_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:364590f55eae6416139fde34aadf1bac5ebb68b7f9eacbef9881bfdee8915142
+size 903508
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_End.uasset
new file mode 100644
index 0000000..dfb77f8
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:26a9083d3bb838bf67da5d0f2a1b7c6fa76fa2196694ecb82b14731057826946
+size 1211328
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_Loop.uasset
new file mode 100644
index 0000000..a453d48
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b764c7ec78172d759da5c27aab7b795c3ea7f62bfc90f46011175b4e9537397f
+size 2007149
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_Start.uasset
new file mode 100644
index 0000000..878f309
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak04_Calm_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be4c3166465f9628b547d8c444d3be9effbe9600bc790ae4ec7f48ab9e18650f
+size 940474
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_End.uasset
new file mode 100644
index 0000000..9c90ce7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1f9b557e2967c66a609612844ca631825ad277c8ab387b058b5d2b0c6597b4e3
+size 1164822
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_Loop.uasset
new file mode 100644
index 0000000..3448738
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e33fbff07237aaaaa136c09064f51a58ec2c162a4182d362aa4d58c43940be35
+size 1224270
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_Start.uasset
new file mode 100644
index 0000000..abc2299
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak05_PointingFingerScolding_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f29990fd9ba5794499542e08333c6b2d59c76d1b6f91595b67a8cc44c69624bb
+size 915279
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_End.uasset
new file mode 100644
index 0000000..28ca558
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ade1a353c70e930f1c474f3ed465b9c6f6eed542a046e5a2d076487ed480164c
+size 1128556
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_Loop.uasset
new file mode 100644
index 0000000..ba7ca1e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c3cbb19f5142aca1e37cbe96c7cb62fa6a52156828d892eace50aa7cc0839909
+size 1838206
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_Start.uasset
new file mode 100644
index 0000000..693d785
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak06_PointingFingerCalmly_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:52ef29b55277937cebd8c486c37da4c7b30ffb8f58325751373fe17413b43739
+size 889898
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_End.uasset
new file mode 100644
index 0000000..cdfa232
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:455c723d4a6ad5397ac826ca759b986fc46b5793c00f719e898c7bc1dcefd0eb
+size 1167339
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_Loop.uasset
new file mode 100644
index 0000000..b8aa8f3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2e47a7751771cdf3fd4f0ee5c7f5e7f2ed2e10fde319710cf81b989689c0a5ea
+size 1973339
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_Start.uasset
new file mode 100644
index 0000000..f26f68c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak07_Chatty_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01c28bf29151603f65af20358d1bf3bb1ae6bf58eb11002b64e7de83efc1065c
+size 903463
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_End.uasset
new file mode 100644
index 0000000..43e13aa
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c7d2170995da48e66305326451c235edaccb81802e931e6755c043901518a0c
+size 1157053
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_Loop.uasset
new file mode 100644
index 0000000..dc833f2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4a7e30ff21d0b05d02833de248ecc830a1e4f0ebfad05507d2328b86a81f186a
+size 1509643
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_Start.uasset
new file mode 100644
index 0000000..1e1af18
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak08_ArmsCrossedPouting_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:080f4870ef6d4c2eafbb197c1915b4fd20219e0c542ad471c6d0907febad15a0
+size 913358
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_End.uasset
new file mode 100644
index 0000000..199b68d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5a58ec998439f8a99a4d2b85b5fd9cd31cc026e88319fcc6e381bae4f7ccda7
+size 1141459
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_Loop.uasset
new file mode 100644
index 0000000..54afe39
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ad0e817e6f67f490d8bcfbb2ca9ab75847f9185a4233cadbb608ee7654c6c428
+size 1784886
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_Start.uasset
new file mode 100644
index 0000000..8845302
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak09_ArmsCrossedCalm_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8a6d62c7b804c53b763f08f19d2c232a380571f718ec45360d452c978479e72
+size 909403
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_End.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_End.uasset
new file mode 100644
index 0000000..30abe77
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e427d5f9a23010dd0282222b11735dd664a79e25a24285d1f46e8d785b0d6125
+size 1159533
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_Loop.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_Loop.uasset
new file mode 100644
index 0000000..e1c00fc
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5cfb1347d63c13f59aa6b1043053fa844f450c319fd8a26a59aef854d4d416db
+size 1407933
diff --git a/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_Start.uasset b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_Start.uasset
new file mode 100644
index 0000000..d06ed11
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Speak/Anim_KA_Speak10_Shy_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4ba37b5601880956609043ebfa9eed726935ab4bc7ef372b2cfe0bec4cd9612
+size 899544
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_End.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_End.uasset
new file mode 100644
index 0000000..fc7ee03
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1eb5837b934d3a274d50e14c562680ac195c9ccc9458ec88d6536330947eb92d
+size 1368266
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Loop.uasset
new file mode 100644
index 0000000..55ec0a8
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:83a50b535ec2622b6eb000b34be08114a304d67c43799ab15f774ed7ebb86192
+size 1048880
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_End.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_End.uasset
new file mode 100644
index 0000000..1557ab6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b16bfd739b1162ed5e21e8d94038c28bff56d8904a7225104237ef7f838f622
+size 1221192
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Loop.uasset
new file mode 100644
index 0000000..b664f8d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01ea716998bad17dffdc6a4766aba5358b77999df859eac55e8963166857e76a
+size 764760
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Start.uasset
new file mode 100644
index 0000000..9dede18
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_L_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b887084dcfb18404e890afb2c015788dc311ca1b0a9df3edef135bcd9c0bf07
+size 844149
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_End.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_End.uasset
new file mode 100644
index 0000000..08731e3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46c2a34e7c4ce4ea63d36bd65ea4b40fce457d08f379aaef4b377d5646c587eb
+size 1213397
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Loop.uasset
new file mode 100644
index 0000000..8c9b6e7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0f21ba229aaecb95978e4330577c8e45e6911d9b7e5573145cc76192d0846649
+size 730162
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Start.uasset
new file mode 100644
index 0000000..ee43494
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_SneakAPeek_R_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dce70d06d705b41c6b027a2e3cc94a08bdd1b6496b1e4302606b367a217248b5
+size 848209
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Start.uasset
new file mode 100644
index 0000000..340aafc
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ad51ce26af7622266bbb1130d0d1abd8d8c460dc7f4c9e3598759e2e7451fc6
+size 953750
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Loop.uasset
new file mode 100644
index 0000000..6e792c9
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7d76b61ca62b014906ae4b6c7b1d11664216ad1e03fe6a7c3f10df3f61c55ad8
+size 479006
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Pivot.uasset
new file mode 100644
index 0000000..3e664db
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eced7d768878843cbe2a0d28c53fb02d08379299f6570abffac05e48a95d2261
+size 1489791
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Start.uasset
new file mode 100644
index 0000000..123e649
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fe86616e21e0ddc6c7ecb848cb9d70cae923faee3ff5f5c083d2498251ffdb7d
+size 1048797
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Stop.uasset
new file mode 100644
index 0000000..a7b5bd3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Left_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:10535c729a60682c681040f96994970a50b8076aa34b5f62abe07d80e2866baf
+size 1404407
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Loop.uasset
new file mode 100644
index 0000000..1506ec6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1ec7c826a4dbb14ba7f9f03d244a69e324edfb6cee392c195798659da23fbff7
+size 475081
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Pivot.uasset
new file mode 100644
index 0000000..309fac4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13295d45e7a400cb436a15d7b12b09c2ec826f90915a0b3bdfa89830d9e625af
+size 1482612
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Start.uasset
new file mode 100644
index 0000000..a7c78f6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:712e14c5511d1204dbbdc772d92b6a5e5290adac000063bbd265070c9e9b60df
+size 970964
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Stop.uasset
new file mode 100644
index 0000000..54424af
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_Lantern_StickToTheWall_Walk_Right_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8175ca2408e746c24184d3c54f5ac7b2bb35af792c81dd2219dc93be31941e51
+size 1278925
diff --git a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Left.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_End.uasset
similarity index 81%
rename from Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Left.uasset
rename to Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_End.uasset
index 7caafec..af55ad2 100644
--- a/Content/KawaiiAnimations/Animations/Anim_KA_SuddenStop_Left.uasset
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_End.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1ba530e1fad67655947773d1b429ca100d78eecddf19b9bd9604d04021363278
-size 290477
+oid sha256:8c496b4a44732af72157f14da0e8992423f25cc80cde6c9ae91ea9fd4a9e1b3d
+size 1388887
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Loop.uasset
new file mode 100644
index 0000000..00ba891
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a71dfd45980264b0e6ff385d15af28d09c29d29d8f447dc46a884e8a963f98f0
+size 996910
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_End.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_End.uasset
new file mode 100644
index 0000000..4bacb03
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c48507ecd4b87139b749148e2f8c9a8b846ae00c33b9910eab338a4aff2cd77e
+size 1231793
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_Loop.uasset
new file mode 100644
index 0000000..4c6b03d
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f9d756192b24be06a0e80a8e548be2dd4d4d910ea28f0a87ce1f82b406d07393
+size 822642
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_Start.uasset
new file mode 100644
index 0000000..0b62be4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_L_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31eed5d753473eed5bb483be4c30cd35ef7c37c3c10378cca5db87d8797696c8
+size 939708
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_End.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_End.uasset
new file mode 100644
index 0000000..fa5c371
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8574deb033578d6ca2f5f4a31b0c0ccb0b1c73418772d2a6bd56d2829e249913
+size 1223961
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_Loop.uasset
new file mode 100644
index 0000000..1784dc0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5dc98bb69748d9c119c475bb2d33738737c0efdf7df14d77d63d46c50a65bda3
+size 840181
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_Start.uasset
new file mode 100644
index 0000000..63e5492
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_SneakAPeek_R_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f670cc49d75626fb7536039b996e0d714064c468481cfb39dee756a0fa778dc8
+size 941824
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Start.uasset
new file mode 100644
index 0000000..aa65544
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:998c0ae844f600d1910bc71d469e1a29f22b1dfaa2bbd398bde828f22844195c
+size 971460
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Loop.uasset
new file mode 100644
index 0000000..4117e00
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:162cad39c2de298addb8e42f4ec7584c2187b97e401639d8085dc1655bf698ff
+size 566811
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Pivot.uasset
new file mode 100644
index 0000000..11bbd6e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:885aa2675fd6c83bf344b849a092444e878440f39a3629b7b38a8a2105d249b1
+size 1663815
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Start.uasset
new file mode 100644
index 0000000..4b716ab
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d61576cd191f409fa08b01c8bdcdd8369a837f58c605e209cd6efa41aa50516
+size 1114317
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Stop.uasset
new file mode 100644
index 0000000..adda803
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Left_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:963d4f49d4154796f1a75cbddd41bb3c5c4220093f9082be727a709b1cc90bf2
+size 1465389
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Loop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Loop.uasset
new file mode 100644
index 0000000..9b18b79
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6372ae6e2e033fa49efd212ff2c6332843d64836e3af9056e986d8856706314e
+size 564270
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Pivot.uasset
new file mode 100644
index 0000000..e892d9a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85f8beb3507cc40f1b879ecfc239046703fd0aa71dc44d606dbddcf1b6687262
+size 1688803
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Start.uasset
new file mode 100644
index 0000000..d45dc5f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a99324fe0c2da85ff7b7d4ce02ab8fb55f47748158abeb0aa2fa959898c994cf
+size 1082919
diff --git a/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Stop.uasset
new file mode 100644
index 0000000..0862bc2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Stick/Anim_KA_StickToTheWall_Walk_Right_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:81d200c9692f2e1fd58ec35734628a6d026788c9f780e18a57bc99119dedc0f8
+size 1452127
diff --git a/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Bwd.uasset b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Bwd.uasset
new file mode 100644
index 0000000..0c996a5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Bwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fb3cd5d15599fb248468363cd0484238d666d9d7a9a6a64ba1c7a6ca5088a488
+size 953592
diff --git a/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Fwd.uasset b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Fwd.uasset
new file mode 100644
index 0000000..bf5bee1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7d12a6852ec2246d973d0753d627e18f66474983a6a7e906379d33e9bdbfcda1
+size 952137
diff --git a/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Left.uasset b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Left.uasset
new file mode 100644
index 0000000..c0088f0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Left.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9fac276739447b7c24d59b4aab4392c6c4ad36834506705e32d182b8a170e2ae
+size 951137
diff --git a/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Right.uasset b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Right.uasset
new file mode 100644
index 0000000..56f7036
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Sudden/Anim_KA_SuddenStop_Right.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:153d526f3a4293a38276c5d506b2b326d0970a07fd40b550fff0c49ed5270a4e
+size 964824
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd.uasset
new file mode 100644
index 0000000..7a5ec68
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce478ae108db65042ebf7162b227b27ce6ec365b2a4bf0e2b4322a9636d19039
+size 727622
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd_Start.uasset
new file mode 100644
index 0000000..d519882
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abb4c2b0903c3f5c8fdef5408457a66f7bfd9c4b54b1c525deb7b36f154f6758
+size 1613446
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd_Stop.uasset
new file mode 100644
index 0000000..c1c1420
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Crawl_Fwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60d45043ded794172243d5d387b70abc5f11feaf2a9239e6a7f70847f3e93c19
+size 1439509
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_End.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_End.uasset
new file mode 100644
index 0000000..c559b50
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_End.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:77655cbea9356ac40b68c22985c81171a3c5639b4781323a29d732bf7a536dea
+size 799258
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_Loop.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_Loop.uasset
new file mode 100644
index 0000000..816c064
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_Loop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c73b62d44b94623410cb1fd8c7953222d420bf9a3f21d163bbaf28eb4e0f5488
+size 236721
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_Start.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_Start.uasset
new file mode 100644
index 0000000..0fd0201
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Diving_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:268c277ebc6afce9eb6f85cdc4101a08b1f4e3c60f99d8c928317190682a172f
+size 523667
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd.uasset
new file mode 100644
index 0000000..4ee25a7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:060d2b8abc5788572eac669a9675e3145a66b0c64238f3bf8cfbc3a80afbfee2
+size 858936
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd_Start.uasset
new file mode 100644
index 0000000..3747f8c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:511400346108da908d21d3b0bc081b56de0162225db76eb4a9cc28336a880649
+size 1770716
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd_Stop.uasset
new file mode 100644
index 0000000..f9c742e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_FlutterKick_Fwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:946f76b2f886e40205e1c5efa21d430444a82c19975fdd82b3e4d91d7c4ab289
+size 1697717
diff --git a/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Idle.uasset b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Idle.uasset
new file mode 100644
index 0000000..afa050e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Swimming/Anim_KA_Swimming_Idle.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:86cf893f556b0b199f195052a8b6de0653de7561db1c8fc57c49cd104c0e9453
+size 882988
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnLeft_180.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnLeft_180.uasset
new file mode 100644
index 0000000..3a148dd
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnLeft_180.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78f8f2f19059c710bf8e02377f5fdf7e3a5ce04f11467d6fd31d61a7051f62a6
+size 1197522
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnLeft_90.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnLeft_90.uasset
new file mode 100644
index 0000000..45d4099
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnLeft_90.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e98ab82f9493da6579f68afd42a45ef513ceafe8f3f0514f67e98b00f560b26
+size 840074
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnRight_180.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnRight_180.uasset
new file mode 100644
index 0000000..d6b2c59
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnRight_180.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef9b103a4ed88e5a9d45451ee995cff06f11f8826c531a0bf83bb8824f690240
+size 1179348
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnRight_90.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnRight_90.uasset
new file mode 100644
index 0000000..5545f18
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_Lantern_TurnRight_90.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d6e7481a14d3772e6d55b39e475adbaf8b7a9076e91126524ff8236c0b9ba41f
+size 840014
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnLeft_180.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnLeft_180.uasset
new file mode 100644
index 0000000..10339c6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnLeft_180.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:713f3a0c90f0e5596741d17ed28a56b798eb39cbe0835fb867e003563d0668b3
+size 1223576
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnLeft_90.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnLeft_90.uasset
new file mode 100644
index 0000000..991a6d1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnLeft_90.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4275829a8a98a4b256bcd34a3c36d6f74ee41a88a89312f3ab3f8544580f5b3d
+size 862810
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnRight_180.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnRight_180.uasset
new file mode 100644
index 0000000..fbb6267
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnRight_180.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cc461c5319bdb3f1b5ad3c2920497a4c24946132b46aa3b9a7fa36a45e92827
+size 1231194
diff --git a/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnRight_90.uasset b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnRight_90.uasset
new file mode 100644
index 0000000..7d79770
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Turn/Anim_KA_TurnRight_90.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e77e1b5d883fe48683355fa98349938d49426a45cf0dbbabedd52b4562c86628
+size 873370
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd.uasset
new file mode 100644
index 0000000..60cea90
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80486cad8e897748352585a5b3a353eaf1bbb0d454bf33beb4b5bde6981bbe2c
+size 594128
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Pivot.uasset
new file mode 100644
index 0000000..aa9087c
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3d5c1af40560a475389a0e3ed62d4eb4547963ab668569189d1ae1e0f35f95b2
+size 1629811
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Start.uasset
new file mode 100644
index 0000000..54a6d05
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1005832e9e6df17fa6dc12271014992aa6b12ea690cb7e85d62627055634f08d
+size 934364
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Stop.uasset
new file mode 100644
index 0000000..b280dff
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Bwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14e7c5138932325f9b2931833129f23393773b15928f637674465c0d1c5893bf
+size 1222994
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd.uasset
new file mode 100644
index 0000000..d55b662
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f4f4b562f3b70d78ecabd11f9e4a452070473112bf752984c5374e1ea09fd7d5
+size 592887
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Pivot.uasset
new file mode 100644
index 0000000..9765cd0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4e481f94969d0964ec5a52dd23bfd537428d90f8095b02853f8948fa19e4ddaa
+size 1613768
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Start.uasset
new file mode 100644
index 0000000..b869e81
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40d6b812372411fb6ad242373f7f5663ff58db7f901c7ce1f029d6679bf23c1e
+size 936608
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Stop.uasset
new file mode 100644
index 0000000..f221ff0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Fwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cbcf5bcd6540644367d947873fc4867c0908bdf07904a8e70a00e64c3e1dfe4d
+size 1231918
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left.uasset
new file mode 100644
index 0000000..ac639ea
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdbd6a74f0f65a8710e2605ac625f47856fcc06432f20d03aaf03ff6ba5903e2
+size 419529
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Pivot.uasset
new file mode 100644
index 0000000..7de703f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f9212a0886efaebe7ba539df8c48bb02a6c0cd76fb7a00fdbbe384472280f71d
+size 1492638
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Start.uasset
new file mode 100644
index 0000000..0439c0f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:26914b02c3aae226c554ccc81848fab05f65e16f1f77ec15f758b3b0b1df8cc1
+size 945538
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Stop.uasset
new file mode 100644
index 0000000..62828ca
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Left_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60c0d0fb2415d2e7ef3c760eb6b6334fb0f1eb1abe1ccae1ce44e914ec68b296
+size 1246755
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right.uasset
new file mode 100644
index 0000000..dbd829b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34d9eb2454c6ea1ea17dccdd40a98f95257660dc9d6372bfb3af3569f7b9b62f
+size 427460
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Pivot.uasset
new file mode 100644
index 0000000..17743f1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:656e16ea361df41b3642e87bf9e660908df3dfd0dc9ca289968414de4dd45fc8
+size 1520874
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Start.uasset
new file mode 100644
index 0000000..f3e8f03
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e6e0a16f9cfa0249db46943c76f3125425782f356d6874e4d0ce193e6fad2213
+size 949787
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Stop.uasset
new file mode 100644
index 0000000..9e05731
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Lantern_Walk_Right_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8da38959ca3f51bf45cf0cfbf99b0e9ac6cf7f495d5d7b057dff05ff1806f599
+size 1234912
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01.uasset
new file mode 100644
index 0000000..a521866
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d6c8f6c05ad0f79cd3b761c03146537a8df9f16a3f40285ab5ac9c85dab46539
+size 657383
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Pivot.uasset
new file mode 100644
index 0000000..39907da
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d7027de3384ae7f3f3b0c6fe561d1641634e42852a481b6fdb60a70a7cc4a5ee
+size 1134007
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Start.uasset
new file mode 100644
index 0000000..04c333f
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:040dbca8667129ece1e6c6c5e07a2e61458367d5f47b8bdbbd98ce8caf4418f9
+size 1078502
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Stop.uasset
new file mode 100644
index 0000000..a6ff181
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk01_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01c77a866c793e11c124989803385bd36a4324f993822dd3989cadd94ce6abfe
+size 1356728
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02.uasset
new file mode 100644
index 0000000..93343bb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:daebccb937fd95e2cf031ddec407defc6916498970dfdab9cd031b89afd122c1
+size 663823
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Pivot.uasset
new file mode 100644
index 0000000..e2ee715
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f675b4e0e495f73d1a66dfdf2174825260177ab090f18b1f19c43161c5d3e54d
+size 1221391
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Start.uasset
new file mode 100644
index 0000000..c2007fb
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:248ea23fb00fa38ea7aa9829113a824f4f6b985533192822a07c640e078341a6
+size 1023492
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Stop.uasset
new file mode 100644
index 0000000..30fba6b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk02_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85a97f122c55babe3862d2e45081db8e587f4c099d76556e95c3aad220672e65
+size 1433418
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03.uasset
new file mode 100644
index 0000000..67e31b2
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9185b26e81d1d650464539efcc93c08f293ec590a4bd1a379d95ba4985b65500
+size 651945
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Pivot.uasset
new file mode 100644
index 0000000..cddc82e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df5cf0dfe9665eab97d154014dd728f532192ea84036689b9f47227361f65b16
+size 1229144
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Start.uasset
new file mode 100644
index 0000000..d2ddaec
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4935a43ec1538fa5d2535e2d173941d8240d439c741ad2bee2e66f48f215510
+size 1056044
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Stop.uasset
new file mode 100644
index 0000000..35aff82
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk03_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c0e7cb51a9ea6cfe345960c5cf097fc1afbc789e4071dc5007a9f204fb2e4f56
+size 1395811
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04.uasset
new file mode 100644
index 0000000..193f968
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1f119ffad79db6bea610600ddc07f8d2f85a69b696b41702a277282bbb08be74
+size 656121
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Pivot.uasset
new file mode 100644
index 0000000..755dda1
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e5dd25ef191a176cfacf56f38e4a17748bc599f807ce1986598c054e0a1feeb
+size 1200679
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Start.uasset
new file mode 100644
index 0000000..47310af
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:622206d60cb206cca97d383bab51869201854593396f8872abbe7578b6eb2187
+size 1040587
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Stop.uasset
new file mode 100644
index 0000000..853d5d6
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk04_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:608b0b424cf903905afd016408ae6f75e41f3713b4d7785e09c2af4fb99109be
+size 1381005
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05.uasset
new file mode 100644
index 0000000..ef11fd3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99b24114ecd71eab661c7167fe37ed46ec4364bc3d9cf0ef68dd5d604fb9a6af
+size 597020
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Pivot.uasset
new file mode 100644
index 0000000..f04d3c7
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f51a21b532cbf654befa580e7b9e77befee98cde0a626cad03d6cc825829814
+size 1203263
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Start.uasset
new file mode 100644
index 0000000..b71e99e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:deafb93dfec1bcff2d3ed581c93ffe7f4adb7c0f7feb9c1b5ba3cac0bb99d864
+size 1045073
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Stop.uasset
new file mode 100644
index 0000000..aff7682
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk05_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e527703e01bff416f67c9a3bccc8ab9c28621b2dc442c76b4608b9d86c90dce9
+size 1389923
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06.uasset
new file mode 100644
index 0000000..3727c8e
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4200768d2bb8dcae1b86fda0b191f48bfa5182b8b62681cd0d018b5ead79829
+size 902431
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Pivot.uasset
new file mode 100644
index 0000000..ee37d9b
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d62b931a0aec2eb678888f118cacf4aebca29b6f1c760771f3f3b88c9195fa62
+size 1349359
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Start.uasset
new file mode 100644
index 0000000..b08e3c5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dfb1974d56682cba9bdf56bdb2b095cabfb51582c9f33b4658f47aa5d42204ea
+size 1436339
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Stop.uasset
new file mode 100644
index 0000000..d4873ed
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk06_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af9b5ca30b2c274dae483f734ec635039af384eabfab27f4622a9f2289db2b59
+size 2018977
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07.uasset
new file mode 100644
index 0000000..9043cd4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e794a1d5055c11fe87c993715ec5e76dd53c60ff942d4e92bff6c3cea8d45214
+size 522008
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Pivot.uasset
new file mode 100644
index 0000000..6ef81a5
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01f7d20632c77b9642806f13a6b0c6fc7496d5c944eb070dbf2952373d5309bd
+size 1153255
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Start.uasset
new file mode 100644
index 0000000..00f3b0a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2a735730f860f9e161bf834fb480f3418c4e8ab20277d58530bbbfb27d5088bf
+size 1060345
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Stop.uasset
new file mode 100644
index 0000000..46c0097
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk07_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6ff26ecc0aea48e590a388ef3f105e1d30188b51af52a30848abe2ce65197b1
+size 1395714
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd.uasset
new file mode 100644
index 0000000..b7cced0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:21b10eb7c47c6a2145e3c7d6fa0b022730e55cfc5b90eeb4580959ee4e2c5e2e
+size 653612
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Pivot.uasset
new file mode 100644
index 0000000..8f96261
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e5d5d4c9408e6e15389b759e51f3e55d8f50d764ae772c5577aeb6e6daa1fd68
+size 1580524
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Start.uasset
new file mode 100644
index 0000000..460c663
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:295e7b5796063174ddcd8f22935308b78e4dc229630f99045f4c67a6f953d97a
+size 1091560
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Stop.uasset
new file mode 100644
index 0000000..9088af8
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Bwd_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:41387cc57401bb93d37a3b9ea61c45a658ff36bfb9d1af69f3feaae16c7cfe0f
+size 1573162
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left.uasset
new file mode 100644
index 0000000..20cfe9a
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a895056a4fa034ea250adf6dad02abec71a7479396c8febcc8b35e7a9d765a4
+size 653203
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Pivot.uasset
new file mode 100644
index 0000000..cda53aa
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5119a6927952611b5b692f49030ff010e7ace43f57a26f1af7883541340902a9
+size 1370056
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Start.uasset
new file mode 100644
index 0000000..ae1a3cf
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5976b74b451cdf9fe9f838d3f0664bb8f64a48267637e8d1db8bb9be1b929613
+size 1098406
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Stop.uasset
new file mode 100644
index 0000000..4684ad4
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Left_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:23d4260870ad1b96d03c03e5112cfaf2f33e903acd7c59cf7c8a2f4093bb5c66
+size 1583497
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right.uasset
new file mode 100644
index 0000000..98b71f0
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2668799e604bd75c409f56031aef5b7e80bb5152670315df2789b9d485888328
+size 657175
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Pivot.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Pivot.uasset
new file mode 100644
index 0000000..6b31a11
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Pivot.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c1ee0551ba9b3c878cc3f904ee1432ccc468471a9a0cdc4389d715c2207be2ab
+size 1389627
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Start.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Start.uasset
new file mode 100644
index 0000000..b078135
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Start.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af1adeb20a512f2b0859997badbe75214d713c350c8f8d2e4aec242230d88cba
+size 1089885
diff --git a/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Stop.uasset b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Stop.uasset
new file mode 100644
index 0000000..19b4ae3
--- /dev/null
+++ b/Content/KawaiiAnimations/Animations/Walk/Anim_KA_Walk_Right_Stop.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f4c7d2aef14146c8c29f8f500a16b0d4272b529b846e75131461e09d6b7ae346
+size 1376881
diff --git a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset
index 814efeb..36926bc 100644
--- a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset
+++ b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:304fff14dc74feb19f90377407eb70376691aa091411aa8de35d3d18de516b05
-size 594033
+oid sha256:ba743cc89e110e8f760468295c48ecb0c7b12b28554524bea5d0a237793731c1
+size 585337
diff --git a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_Swim.uasset b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_Swim.uasset
index 6686b13..ff976a9 100644
--- a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_Swim.uasset
+++ b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_Swim.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e10d5feacae02198857651c015181b95734f6a3874f96ebf6c18608a2317ff7a
-size 8844
+oid sha256:2ed0781e1117663d8dff5f3b64976e79227b569252d1769b2cbbf8fc621fb67e
+size 9207
diff --git a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_WalkRun1.uasset b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_WalkRun1.uasset
index 3aa47f1..c014b82 100644
--- a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_WalkRun1.uasset
+++ b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_BS1D_KA_WalkRun1.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f711dcb598388347516b8a664ea9ced169fcc740dfef5872b8ea873afa7f14dd
-size 9062
+oid sha256:2092a9d6bd4ff037df0a13c980446fff9db135961f480317efe87d631094f8aa
+size 9411
diff --git a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_KA_Swimming_Diving_Start_Montage.uasset b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_KA_Swimming_Diving_Start_Montage.uasset
index 111d657..beb6957 100644
--- a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_KA_Swimming_Diving_Start_Montage.uasset
+++ b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Animations/Anim_KA_Swimming_Diving_Start_Montage.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f66f11e73590bfaf56cb40e33e4f3b93199f92ac1b7ab517f00663bfefab2a9b
-size 9007
+oid sha256:353be5af7e92621c9fc94fdaae8f3e59678ffd876777237b35236451f68c9fab
+size 9710
diff --git a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Meshes/ABB_Kawaii.uasset b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Meshes/ABB_Kawaii.uasset
index 1841520..8f886ae 100644
--- a/Content/KawaiiAnimations/Demo/Characters/Mannequins/Meshes/ABB_Kawaii.uasset
+++ b/Content/KawaiiAnimations/Demo/Characters/Mannequins/Meshes/ABB_Kawaii.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e08366de07034a635aa71b270a78e5329f7e21cacd1ff52ae64fdfcf22a6129d
-size 47186
+oid sha256:c521c0a0a9238eea0af08919c46cd9d674ad55c72ff241f578e2dc95a29c128b
+size 52053
diff --git a/FunnyGirl.uproject b/FunnyGirl.uproject
index aaa99f8..480e83a 100644
--- a/FunnyGirl.uproject
+++ b/FunnyGirl.uproject
@@ -23,10 +23,6 @@
"Editor"
]
},
- {
- "Name": "MobileFSR",
- "Enabled": false
- },
{
"Name": "ElectraPlayer",
"Enabled": true
@@ -40,12 +36,7 @@
"Enabled": true
},
{
- "Name": "Nwiro",
- "Enabled": true,
- "MarketplaceURL": "com.epicgames.launcher://ue/Fab/product/22e3bc90-ed91-4154-8bea-21c33e6a51b7"
- },
- {
- "Name": "Monolith",
+ "Name": "IKRig",
"Enabled": true
}
]
diff --git a/Plugins/MobileFSR/FidelityFX-FSR.tps b/Plugins/MobileFSR/FidelityFX-FSR.tps
deleted file mode 100644
index 6aa4d52..0000000
--- a/Plugins/MobileFSR/FidelityFX-FSR.tps
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- FidelityFX-FSR
- //UE5/Main/Engine/Shaders/Private/Mobile/FSR
- The implementation here is HLSL shader source code that will be distributed to the general public with all versions of Unreal Engine (Github., Epic Games Launcher, Perforce) in the Engine/Shaders folder. All of our Unreal-engine products such as Fortnite will also ship a compiled version of this code.It's neither statically or dynamically linked, because it's not CPU code, it's shader code that
- https://github.com/GPUOpen-Effects/FidelityFX-FSR/blob/master/license.txt
-
- Licensees
- Git
- P4
-
-
-
\ No newline at end of file
diff --git a/Plugins/MobileFSR/MobileFSR.uplugin b/Plugins/MobileFSR/MobileFSR.uplugin
deleted file mode 100644
index e36150b..0000000
--- a/Plugins/MobileFSR/MobileFSR.uplugin
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "FileVersion": 1,
- "Version": 1,
- "VersionName": "1.0",
- "FriendlyName": "Mobile FSR",
- "Description": "Mobile FSR 1.0",
- "Category": "Rendering",
- "CreatedBy": "Epic Games, Inc.",
- "CreatedByURL": "https://epicgames.com",
- "DocsURL": "",
- "MarketplaceURL": "",
- "SupportURL": "",
- "EnabledByDefault": false,
- "CanContainContent": true,
- "IsBetaVersion": false,
- "Installed": false,
- "SupportedTargetPlatforms": [
- "IOS",
- "Android"
- ],
- "Modules": [
- {
- "Name": "MobileFSR",
- "Type": "Runtime",
- "LoadingPhase": "PostConfigInit"
- }
- ]
-}
\ No newline at end of file
diff --git a/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_Common.ush b/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_Common.ush
deleted file mode 100644
index 2ca18cb..0000000
--- a/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_Common.ush
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-//------------------------------------------------------------------------------
-// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files(the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions :
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//------------------------------------------------------------------------------
-
-// !!!
-// FidelityFX Super Resolution - Common
-// This header should be included after ffx_a.ush
-// !!!
-
-// =====================================================================================
-//
-// EOTF Conversions
-//
-// =====================================================================================
-// FSR output device definitions : matching EFSR_OutputDevice enum in PostProcessFSR.cpp
-#define FSR_SRGB 0
-#define FSR_LINEAR 1
-#define FSR_ST2084 2
-#define FSR_scRGB 3
-
-#define MAX_ODT_NITS_ENUM 0
-#define CONVERT_TO_OUTPUT_DEVICE 0
-
-#include "/Engine/Private/ACES/ACESCommon.ush"
-#include "/Engine/Private/GammaCorrectionCommon.ush"
-
-float4 LinearToGamma2(float4 Color) { return sqrt(Color); }
-float3 LinearToGamma2(float3 Color) { return sqrt(Color); }
-float2 LinearToGamma2(float2 Color) { return sqrt(Color); }
-float LinearToGamma2(float Color) { return sqrt(Color); }
-
-float4 Gamma2ToLinear(float4 Color) { return Color * Color; }
-float3 Gamma2ToLinear(float3 Color) { return Color * Color; }
-float2 Gamma2ToLinear(float2 Color) { return Color * Color; }
-float Gamma2ToLinear(float Color) { return Color * Color; }
-
-#if ENABLE_FP16
-AH4 LinearToGamma2(AH4 Color) { return sqrt(Color); }
-AH3 LinearToGamma2(AH3 Color) { return sqrt(Color); }
-AH2 LinearToGamma2(AH2 Color) { return sqrt(Color); }
-AH1 LinearToGamma2(AH1 Color) { return sqrt(Color); }
-
-AH4 Gamma2ToLinear(AH4 Color) { return Color * Color; }
-AH3 Gamma2ToLinear(AH3 Color) { return Color * Color; }
-AH2 Gamma2ToLinear(AH2 Color) { return Color * Color; }
-AH1 Gamma2ToLinear(AH1 Color) { return Color * Color; }
-#endif
-
-//-----------------------------------------------------------------
-
-// only float3 ST2084ToLinear() is defined in GammaCorrectionCommon.ush
-float ST2084ToLinear_F(float pq)
-{
- const float m1 = 0.1593017578125; // = 2610. / 4096. * .25;
- const float m2 = 78.84375; // = 2523. / 4096. * 128;
- const float c1 = 0.8359375; // = 2392. / 4096. * 32 - 2413./4096.*32 + 1;
- const float c2 = 18.8515625; // = 2413. / 4096. * 32;
- const float c3 = 18.6875; // = 2392. / 4096. * 32;
- const float C = 10000.;
-
- float Np = pow(pq, 1. / m2);
- float L = Np - c1;
- L = max(0., L);
- L = L / (c2 - c3 * Np);
- L = pow(L, 1. / m1);
- float P = L * C;
-
- return P;
-}
-float ST2084ToGamma2(float pq) { return LinearToGamma2(ST2084ToLinear_F(pq)); }
-float2 ST2084ToGamma2(float2 pq) { return LinearToGamma2(float2(ST2084ToLinear_F(pq.r), ST2084ToLinear_F(pq.g))); }
-float3 ST2084ToGamma2(float3 pq) { return LinearToGamma2(ST2084ToLinear(pq)); }
-float4 ST2084ToGamma2(float4 pq) { return LinearToGamma2(float4(ST2084ToLinear(pq.rgb), ST2084ToLinear_F(pq.a))); }
-
-//-----------------------------------------------------------------
-
-// Either 1000 or 2000 depending on UE4 Tonemapper enum,
-// should be provided by the engine
-#if MAX_ODT_NITS_ENUM == 1
-#define HDR_MAX_ODT_NITS 2000
-#else
-#define HDR_MAX_ODT_NITS 1000
-#endif
-
-#define HDR_MAX_NITS 10000
-#define HDR_MAX_NITS_INV 0.0001f
-
-// matches white point in ST2084ToScRGB()
-#define HDR_WHITE_POINT 80.0f
-
-float3 Gamma2ToScRGB(float3 Color)
-{
- const float3x3 Rec2020_2_sRGB = mul(XYZ_2_sRGB_MAT, Rec2020_2_XYZ_MAT);
- const float MaxODTNits = HDR_MAX_ODT_NITS;
- const float scRGBScale = MaxODTNits / HDR_WHITE_POINT;
-
- // Gamma2 -> Linear encoding
- float3 LinearColor_Rec2020 = Gamma2ToLinear(Color);
-
- // Rec2020 -> sRGB primaries
- float3 LinearColor_sRGB = mul(Rec2020_2_sRGB, LinearColor_Rec2020);
-
- // Linear_sRGB -> scRGB
- return LinearColor_sRGB * scRGBScale;
-}
-
-float3 scRGBToGamma2(float3 Color_scRGB)
-{
- const float3x3 sRGB_2_Rec2020 = mul(XYZ_2_Rec2020_MAT, sRGB_2_XYZ_MAT);
- const float MaxODTNits = HDR_MAX_ODT_NITS;
- const float scRGBScale = MaxODTNits / HDR_WHITE_POINT;
- const float scRGBScaleInv = HDR_WHITE_POINT / MaxODTNits;
-
- // normalize to [0-1]
- Color_scRGB *= scRGBScaleInv;
-
- // convert primaries sRGB -> Rec2020
- float3 Color_Rec2020 = mul(sRGB_2_Rec2020, Color_scRGB);
-
- // clamp negatives
- Color_Rec2020 = max(Color_Rec2020, 0);
-
- // Gamma2-encode
- return LinearToGamma2(Color_Rec2020);
-}
-
-float3 LinearToScRGB(float3 LinearColor_Rec2020)
-{
- const float3x3 Rec2020_2_sRGB = mul(XYZ_2_sRGB_MAT, Rec2020_2_XYZ_MAT);
- const float MaxODTNits = HDR_MAX_ODT_NITS;
- const float scRGBScale = MaxODTNits / HDR_WHITE_POINT;
-
- // Rec2020 -> sRGB primaries
- float3 LinearColor_sRGB = mul(Rec2020_2_sRGB, LinearColor_Rec2020);
-
- // Linear_sRGB -> scRGB
- return LinearColor_sRGB * scRGBScale;
-}
diff --git a/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_FSR.usf b/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_FSR.usf
deleted file mode 100644
index b3f0cb1..0000000
--- a/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_FSR.usf
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-//------------------------------------------------------------------------------
-//
-// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files(the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions :
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//------------------------------------------------------------------------------
-
-#include "/Engine/Private/Common.ush"
-#include "/Engine/Private/ScreenPass.ush"
-
-
-// =====================================================================================
-//
-// SHADER RESOURCES
-//
-// =====================================================================================
-uint4 Const0;
-uint4 Const1;
-uint4 Const2;
-uint4 Const3;
-
-SamplerState samLinearClamp;
-
-// UE4 GrainIntensity
-float4 GrainRandomFull; // zw:unused
-float4 GrainScaleBiasJitter; // x:Scale y:Bias z:Jitter
-
-float2 VPColor_ExtentInverse;
-float2 VPColor_ViewportMin;
-
-// =====================================================================================
-//
-// FIDELITYFX SETUP
-//
-// =====================================================================================
-#define A_GPU 1
-#define A_HLSL 1
-
-// Note: Input is expected to be in Gamma2-encoding.
-// LDR: This is already the case.
-// HDR: A ColorConversionCS runs before FSR to provide Gamma2 input to FSR passes
-#if ENABLE_FP16
- #define A_HALF
- #include "ffx_a.ush"
- Texture2D InputTexture;
- RWTexture2D OutputTexture;
- #define FSR_EASU_H 1
- AH4 FsrEasuRH(AF2 p) { AH4 res = InputTexture.GatherRed (samLinearClamp, p, ASU2(0, 0)); return res; }
- AH4 FsrEasuGH(AF2 p) { AH4 res = InputTexture.GatherGreen(samLinearClamp, p, ASU2(0, 0)); return res; }
- AH4 FsrEasuBH(AF2 p) { AH4 res = InputTexture.GatherBlue (samLinearClamp, p, ASU2(0, 0)); return res; }
- AH4 FsrEasuAH(AF2 p) { AH4 res = InputTexture.GatherAlpha(samLinearClamp, p, ASU2(0, 0)); return res; }
- AH4 FsrEasuRHO(AF2 p, ASW2 o) { AH4 res = InputTexture.GatherRed (samLinearClamp, p, o); return res; }
- AH4 FsrEasuGHO(AF2 p, ASW2 o) { AH4 res = InputTexture.GatherGreen(samLinearClamp, p, o); return res; }
- AH4 FsrEasuBHO(AF2 p, ASW2 o) { AH4 res = InputTexture.GatherBlue (samLinearClamp, p, o); return res; }
- AH4 FsrEasuAHO(AF2 p, ASW2 o) { AH4 res = InputTexture.GatherAlpha(samLinearClamp, p, o); return res; }
- AH4 FsrEasuSampleH(AF2 p) { AH4 res = InputTexture.SampleLevel(samLinearClamp, p, 0); return res; }
-#else
- #include "ffx_a.ush"
- Texture2D InputTexture;
- RWTexture2D OutputTexture;
- #define FSR_EASU_F 1
- AF4 FsrEasuRF(AF2 p) { AF4 res = InputTexture.GatherRed (samLinearClamp, p, ASU2(0, 0)); return res; }
- AF4 FsrEasuGF(AF2 p) { AF4 res = InputTexture.GatherGreen(samLinearClamp, p, ASU2(0, 0)); return res; }
- AF4 FsrEasuBF(AF2 p) { AF4 res = InputTexture.GatherBlue (samLinearClamp, p, ASU2(0, 0)); return res; }
- AF4 FsrEasuAF(AF2 p) { AF4 res = InputTexture.GatherAlpha(samLinearClamp, p, ASU2(0, 0)); return res; }
-#endif
-
-// should be included after ffx_a.ush, defines FSR_OUTPUTDEVICE
-#include "PostProcessMobileFFX_Common.ush"
-
-#include "ffx_fsr1.ush"
-
-// =====================================================================================
-//
-// FIDELITYFX SUPER RESOLUTION
-//
-// =====================================================================================
-
-#if ENABLE_FP16
-AH4 FidelityFXSuperResolution(AU2 gxy)
-#else
-AF4 FidelityFXSuperResolution(AU2 gxy)
-#endif
-{
-
-//
-// FSR / EASU()
-//
-#if ENABLE_FP16
- AH4 Gamma2Color = AH4(0,0,0,0);
- #if ES3_1_PROFILE
- FsrEasuL(Gamma2Color, gxy, Const0, Const1, Const2, Const3);
- #else
- FsrEasuH(Gamma2Color, gxy, Const0, Const1, Const2, Const3);
- #endif
-#else
- AF4 Gamma2Color = AF4(0,0,0,0);
- FsrEasuF(Gamma2Color, gxy, Const0, Const1, Const2, Const3);
-#endif // ENABLE_FP16
-
-#if !USE_PASSTHROUGH_ALPHA
- Gamma2Color.a = 1;
-#endif // !USE_PASSTHROUGH_ALPHA
-
- return Gamma2Color;
-}
-
-
-
-// =====================================================================================
-//
-// ENTRY POINTS
-//
-// =====================================================================================
-#if COMPUTE_SHADER
-[numthreads(THREADGROUP_SIZEX, THREADGROUP_SIZEY, THREADGROUP_SIZEZ)]
-void MainCS(uint3 LocalThreadId : SV_GroupThreadID, uint3 WorkGroupId : SV_GroupID, uint3 Dtid : SV_DispatchThreadID)
-{
- // Do remapping of local xy in workgroup for a more PS-like swizzle pattern.
- // Threadgroup of 64 threads, each working on a cache-friendly 2x2 region (= 16x16 workgroup if 1px/thread assumed)
- AU2 gxy = ARmp8x8(LocalThreadId.x) + AU2(WorkGroupId.x << 4u, WorkGroupId.y << 4u);
-
- OutputTexture[gxy + VPColor_ViewportMin] = FidelityFXSuperResolution(gxy);
-
- gxy.x += 8u;
- OutputTexture[gxy + VPColor_ViewportMin] = FidelityFXSuperResolution(gxy);
-
- gxy.y += 8u;
- OutputTexture[gxy + VPColor_ViewportMin] = FidelityFXSuperResolution(gxy);
-
- gxy.x -= 8u;
- OutputTexture[gxy + VPColor_ViewportMin] = FidelityFXSuperResolution(gxy);
-}
-#endif // COMPUTE SHADER
-
-#if ENABLE_FP16
-void MainPS(noperspective float4 UVAndScreenPos : TEXCOORD0, float4 SvPosition : SV_POSITION, out AH4 OutColor : SV_Target0)
-{
- AU2 gxy = AU2(SvPosition.xy - VPColor_ViewportMin);
- OutColor = FidelityFXSuperResolution(gxy);
-}
-#else
-void MainPS(noperspective float4 UVAndScreenPos : TEXCOORD0, float4 SvPosition : SV_POSITION, out float4 OutColor : SV_Target0)
-{
- AU2 gxy = AU2(SvPosition.xy - VPColor_ViewportMin);
- OutColor = FidelityFXSuperResolution(gxy);
-}
-#endif
diff --git a/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_RCAS.usf b/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_RCAS.usf
deleted file mode 100644
index b3b6bf9..0000000
--- a/Plugins/MobileFSR/Shaders/Private/PostProcessMobileFFX_RCAS.usf
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-//------------------------------------------------------------------------------
-// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files(the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions :
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//------------------------------------------------------------------------------
-
-// FidelityFX Super Resolution - Robust Contrast Adaptive Sharpening
-
-#include "/Engine/Private/Common.ush"
-#include "/Engine/Private/ScreenPass.ush"
-
-
-// =====================================================================================
-//
-// SHADER RESOURCES
-//
-// =====================================================================================
-
-// RCAS params
-uint4 Const0;
-float2 VPColor_ExtentInverse;
-
-
-// =====================================================================================
-//
-// FIDELITYFX SETUP
-//
-// =====================================================================================
-#define A_HLSL 1
-#define A_GPU 1
-
-#if USE_RCAS_DENOISE
-#define FSR_RCAS_DENOISE 1
-#endif
-
-#if USE_PASSTHROUGH_ALPHA
-#define FSR_RCAS_PASSTHROUGH_ALPHA 1
-#endif
-
-#if ENABLE_FP16
- #define FSR_RCAS_H 1
- #define FSR_RCAS_HX2 1
- #define A_HALF 1
- #include "ffx_a.ush"
-
- Texture2D InputTexture;
- RWTexture2D OutputTexture;
- AH4 FsrRcasLoadH(min16int2 p) {return InputTexture.Load(int3(p, 0));}
- AH4 FsrRcasLoadHx2(min16int2 p){return InputTexture.Load(int3(p, 0));}
-#else
- #define FSR_RCAS_F 1
- #include "ffx_a.ush"
-
- Texture2D InputTexture;
- RWTexture2D OutputTexture;
- AF4 FsrRcasLoadF(int2 p){return InputTexture.Load(int3(p, 0));}
-#endif
-
-// should be included after ffx_a.ush, defines FSR_OUTPUTDEVICE
-#include "PostProcessMobileFFX_Common.ush"
-
-
-// Note: Input is expected to be in Gamma2-encoding.
-// LDR: This is already the case.
-// HDR: A ColorConversionCS runs before FSR to provide Gamma2 input to FSR passes
-#if ENABLE_FP16
- void FsrRcasInputH (inout AH1 r,inout AH1 g,inout AH1 b){} // RCAS is done in perceptual space (sRGB~Gamma2)
- void FsrRcasInputHx2(inout AH2 r,inout AH2 g,inout AH2 b){} // Hence, no need to modify r/g/b
-#else
- void FsrRcasInputF(inout AF1 r, inout AF1 g, inout AF1 b){}
-#endif
-
-
-#include "ffx_fsr1.ush"
-
-
-// =====================================================================================
-//
-// RCAS IMPLEMENTATION
-//
-// =====================================================================================
-#if ENABLE_FP16 // half precision floating point
-AH4 RCASPassCommon(AU2 gxy)
-#else
-AF4 RCASPassCommon(AU2 gxy)
-#endif
-{
- //
- // RCAS()
- //
- #if ENABLE_FP16 // half precision floating point
-
- #if USE_PASSTHROUGH_ALPHA
-
- AH4 Gamma2Color = AH4(0, 0, 0, 0);
- FsrRcasH(Gamma2Color.r, Gamma2Color.g, Gamma2Color.b, Gamma2Color.a, gxy, Const0);
-
- #else
-
- AH4 Gamma2Color = AH4(0, 0, 0, 1);
- FsrRcasH(Gamma2Color.r, Gamma2Color.g, Gamma2Color.b, gxy, Const0);
-
- #endif // USE_PASSTHROUGH_ALPHA
-
- #else // FP32 - full precision floating point
-
- #if USE_PASSTHROUGH_ALPHA
-
- AF4 Gamma2Color = AF4(0, 0, 0, 0);
- FsrRcasF(Gamma2Color.r, Gamma2Color.g, Gamma2Color.b, Gamma2Color.a, gxy, Const0);
-
- #else
-
- AF4 Gamma2Color = AF4(0, 0, 0, 1);
- FsrRcasF(Gamma2Color.r, Gamma2Color.g, Gamma2Color.b, gxy, Const0);
-
- #endif // USE_PASSTHROUGH_ALPHA
-
- #endif // ENABLE_FP16
-
- return Gamma2Color;
-}
-
-
-
-// =====================================================================================
-//
-// ENTRY POINTS
-//
-// =====================================================================================
-#if COMPUTE_SHADER
-[numthreads(THREADGROUP_SIZEX, THREADGROUP_SIZEY, THREADGROUP_SIZEZ)]
-void MainCS(uint3 LocalThreadId : SV_GroupThreadID, uint3 WorkGroupId : SV_GroupID, uint3 Dtid : SV_DispatchThreadID)
-{
- // Do remapping of local xy in workgroup for a more PS-like swizzle pattern.
- AU2 gxy = ARmp8x8(LocalThreadId.x) + AU2(WorkGroupId.x << 4u, WorkGroupId.y << 4u);
-
-#if ENABLE_FP16
- OutputTexture[gxy] = RCASPassCommon(gxy);
-
- gxy.x += 8u;
- OutputTexture[gxy] = RCASPassCommon(gxy);
-
- gxy.y += 8u;
- OutputTexture[gxy] = RCASPassCommon(gxy);
-
- gxy.x -= 8u;
- OutputTexture[gxy] = RCASPassCommon(gxy);
-#else
- OutputTexture[gxy] = RCASPassCommon(gxy);
-
- gxy.x += 8u;
- OutputTexture[gxy] = RCASPassCommon(gxy);
-
- gxy.y += 8u;
- OutputTexture[gxy] = RCASPassCommon(gxy);
-
- gxy.x -= 8u;
- OutputTexture[gxy] = RCASPassCommon(gxy);
-#endif
-}
-#endif // COMPUTE_SHADER
-
-#if ENABLE_FP16
-void MainPS(noperspective float4 UVAndScreenPos : TEXCOORD0, float4 SvPosition : SV_POSITION, out AH4 OutColor : SV_Target0)
-{
- AU2 gxy = AU2(SvPosition.xy);
- OutColor = RCASPassCommon(gxy);
-}
-#else
-void MainPS(noperspective float4 UVAndScreenPos : TEXCOORD0, float4 SvPosition : SV_POSITION, out float4 OutColor : SV_Target0)
-{
- AU2 gxy = AU2(SvPosition.xy);
- OutColor = RCASPassCommon(gxy);
-}
-#endif
diff --git a/Plugins/MobileFSR/Shaders/Private/ffx_a.ush b/Plugins/MobileFSR/Shaders/Private/ffx_a.ush
deleted file mode 100644
index ca4677d..0000000
--- a/Plugins/MobileFSR/Shaders/Private/ffx_a.ush
+++ /dev/null
@@ -1,2656 +0,0 @@
-//==============================================================================================================================
-//
-// [A] SHADER PORTABILITY 1.20210629
-//
-//==============================================================================================================================
-// FidelityFX Super Resolution Sample
-//
-// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files(the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions :
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//------------------------------------------------------------------------------------------------------------------------------
-// MIT LICENSE
-// ===========
-// Copyright (c) 2014 Michal Drobot (for concepts used in "FLOAT APPROXIMATIONS").
-// -----------
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
-// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
-// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-// -----------
-// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
-// Software.
-// -----------
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//------------------------------------------------------------------------------------------------------------------------------
-// ABOUT
-// =====
-// Common central point for high-level shading language and C portability for various shader headers.
-//------------------------------------------------------------------------------------------------------------------------------
-// DEFINES
-// =======
-// A_CPU ..... Include the CPU related code.
-// A_GPU ..... Include the GPU related code.
-// A_GLSL .... Using GLSL.
-// A_HLSL .... Using HLSL.
-// A_HLSL_6_2 Using HLSL 6.2 with new 'uint16_t' and related types (requires '-enable-16bit-types').
-// A_NO_16_BIT_CAST Don't use instructions that are not availabe in SPIR-V (needed for running A_HLSL_6_2 on Vulkan)
-// A_GCC ..... Using a GCC compatible compiler (else assume MSVC compatible compiler by default).
-// =======
-// A_BYTE .... Support 8-bit integer.
-// A_HALF .... Support 16-bit integer and floating point.
-// A_LONG .... Support 64-bit integer.
-// A_DUBL .... Support 64-bit floating point.
-// =======
-// A_WAVE .... Support wave-wide operations.
-//------------------------------------------------------------------------------------------------------------------------------
-// To get #include "ffx_a.ush" working in GLSL use '#extension GL_GOOGLE_include_directive:require'.
-//------------------------------------------------------------------------------------------------------------------------------
-// SIMPLIFIED TYPE SYSTEM
-// ======================
-// - All ints will be unsigned with exception of when signed is required.
-// - Type naming simplified and shortened "A<#components>",
-// - H = 16-bit float (half)
-// - F = 32-bit float (float)
-// - D = 64-bit float (double)
-// - P = 1-bit integer (predicate, not using bool because 'B' is used for byte)
-// - B = 8-bit integer (byte)
-// - W = 16-bit integer (word)
-// - U = 32-bit integer (unsigned)
-// - L = 64-bit integer (long)
-// - Using "AS<#components>" for signed when required.
-//------------------------------------------------------------------------------------------------------------------------------
-// TODO
-// ====
-// - Make sure 'ALerp*(a,b,m)' does 'b*m+(-a*m+a)' (2 ops).
-//------------------------------------------------------------------------------------------------------------------------------
-// CHANGE LOG
-// ==========
-// 20200914 - Expanded wave ops and prx code.
-// 20200713 - Added [ZOL] section, fixed serious bugs in sRGB and Rec.709 color conversion code, etc.
-//==============================================================================================================================
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// COMMON
-//==============================================================================================================================
-#define A_2PI 6.28318530718
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-//
-// CPU
-//
-//
-//==============================================================================================================================
-#ifdef A_CPU
- // Supporting user defined overrides.
- #ifndef A_RESTRICT
- #define A_RESTRICT __restrict
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifndef A_STATIC
- #define A_STATIC static
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- // Same types across CPU and GPU.
- // Predicate uses 32-bit integer (C friendly bool).
- typedef uint32_t AP1;
- typedef float AF1;
- typedef double AD1;
- typedef uint8_t AB1;
- typedef uint16_t AW1;
- typedef uint32_t AU1;
- typedef uint64_t AL1;
- typedef int8_t ASB1;
- typedef int16_t ASW1;
- typedef int32_t ASU1;
- typedef int64_t ASL1;
-//------------------------------------------------------------------------------------------------------------------------------
- #define AD1_(a) ((AD1)(a))
- #define AF1_(a) ((AF1)(a))
- #define AL1_(a) ((AL1)(a))
- #define AU1_(a) ((AU1)(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASL1_(a) ((ASL1)(a))
- #define ASU1_(a) ((ASU1)(a))
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AU1 AU1_AF1(AF1 a){union{AF1 f;AU1 u;}bits;bits.f=a;return bits.u;}
-//------------------------------------------------------------------------------------------------------------------------------
- #define A_TRUE 1
- #define A_FALSE 0
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-// CPU/GPU PORTING
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// Get CPU and GPU to share all setup code, without duplicate code paths.
-// This uses a lower-case prefix for special vector constructs.
-// - In C restrict pointers are used.
-// - In the shading language, in/inout/out arguments are used.
-// This depends on the ability to access a vector value in both languages via array syntax (aka color[2]).
-//==============================================================================================================================
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// VECTOR ARGUMENT/RETURN/INITIALIZATION PORTABILITY
-//==============================================================================================================================
- #define retAD2 AD1 *A_RESTRICT
- #define retAD3 AD1 *A_RESTRICT
- #define retAD4 AD1 *A_RESTRICT
- #define retAF2 AF1 *A_RESTRICT
- #define retAF3 AF1 *A_RESTRICT
- #define retAF4 AF1 *A_RESTRICT
- #define retAL2 AL1 *A_RESTRICT
- #define retAL3 AL1 *A_RESTRICT
- #define retAL4 AL1 *A_RESTRICT
- #define retAU2 AU1 *A_RESTRICT
- #define retAU3 AU1 *A_RESTRICT
- #define retAU4 AU1 *A_RESTRICT
-//------------------------------------------------------------------------------------------------------------------------------
- #define inAD2 AD1 *A_RESTRICT
- #define inAD3 AD1 *A_RESTRICT
- #define inAD4 AD1 *A_RESTRICT
- #define inAF2 AF1 *A_RESTRICT
- #define inAF3 AF1 *A_RESTRICT
- #define inAF4 AF1 *A_RESTRICT
- #define inAL2 AL1 *A_RESTRICT
- #define inAL3 AL1 *A_RESTRICT
- #define inAL4 AL1 *A_RESTRICT
- #define inAU2 AU1 *A_RESTRICT
- #define inAU3 AU1 *A_RESTRICT
- #define inAU4 AU1 *A_RESTRICT
-//------------------------------------------------------------------------------------------------------------------------------
- #define inoutAD2 AD1 *A_RESTRICT
- #define inoutAD3 AD1 *A_RESTRICT
- #define inoutAD4 AD1 *A_RESTRICT
- #define inoutAF2 AF1 *A_RESTRICT
- #define inoutAF3 AF1 *A_RESTRICT
- #define inoutAF4 AF1 *A_RESTRICT
- #define inoutAL2 AL1 *A_RESTRICT
- #define inoutAL3 AL1 *A_RESTRICT
- #define inoutAL4 AL1 *A_RESTRICT
- #define inoutAU2 AU1 *A_RESTRICT
- #define inoutAU3 AU1 *A_RESTRICT
- #define inoutAU4 AU1 *A_RESTRICT
-//------------------------------------------------------------------------------------------------------------------------------
- #define outAD2 AD1 *A_RESTRICT
- #define outAD3 AD1 *A_RESTRICT
- #define outAD4 AD1 *A_RESTRICT
- #define outAF2 AF1 *A_RESTRICT
- #define outAF3 AF1 *A_RESTRICT
- #define outAF4 AF1 *A_RESTRICT
- #define outAL2 AL1 *A_RESTRICT
- #define outAL3 AL1 *A_RESTRICT
- #define outAL4 AL1 *A_RESTRICT
- #define outAU2 AU1 *A_RESTRICT
- #define outAU3 AU1 *A_RESTRICT
- #define outAU4 AU1 *A_RESTRICT
-//------------------------------------------------------------------------------------------------------------------------------
- #define varAD2(x) AD1 x[2]
- #define varAD3(x) AD1 x[3]
- #define varAD4(x) AD1 x[4]
- #define varAF2(x) AF1 x[2]
- #define varAF3(x) AF1 x[3]
- #define varAF4(x) AF1 x[4]
- #define varAL2(x) AL1 x[2]
- #define varAL3(x) AL1 x[3]
- #define varAL4(x) AL1 x[4]
- #define varAU2(x) AU1 x[2]
- #define varAU3(x) AU1 x[3]
- #define varAU4(x) AU1 x[4]
-//------------------------------------------------------------------------------------------------------------------------------
- #define initAD2(x,y) {x,y}
- #define initAD3(x,y,z) {x,y,z}
- #define initAD4(x,y,z,w) {x,y,z,w}
- #define initAF2(x,y) {x,y}
- #define initAF3(x,y,z) {x,y,z}
- #define initAF4(x,y,z,w) {x,y,z,w}
- #define initAL2(x,y) {x,y}
- #define initAL3(x,y,z) {x,y,z}
- #define initAL4(x,y,z,w) {x,y,z,w}
- #define initAU2(x,y) {x,y}
- #define initAU3(x,y,z) {x,y,z}
- #define initAU4(x,y,z,w) {x,y,z,w}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// SCALAR RETURN OPS
-//------------------------------------------------------------------------------------------------------------------------------
-// TODO
-// ====
-// - Replace transcendentals with manual versions.
-//==============================================================================================================================
- #ifdef A_GCC
- A_STATIC AD1 AAbsD1(AD1 a){return __builtin_fabs(a);}
- A_STATIC AF1 AAbsF1(AF1 a){return __builtin_fabsf(a);}
- A_STATIC AU1 AAbsSU1(AU1 a){return AU1_(__builtin_abs(ASU1_(a)));}
- A_STATIC AL1 AAbsSL1(AL1 a){return AL1_(__builtin_llabs(ASL1_(a)));}
- #else
- A_STATIC AD1 AAbsD1(AD1 a){return fabs(a);}
- A_STATIC AF1 AAbsF1(AF1 a){return fabsf(a);}
- A_STATIC AU1 AAbsSU1(AU1 a){return AU1_(abs(ASU1_(a)));}
- A_STATIC AL1 AAbsSL1(AL1 a){return AL1_(labs((long)ASL1_(a)));}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_GCC
- A_STATIC AD1 ACosD1(AD1 a){return __builtin_cos(a);}
- A_STATIC AF1 ACosF1(AF1 a){return __builtin_cosf(a);}
- #else
- A_STATIC AD1 ACosD1(AD1 a){return cos(a);}
- A_STATIC AF1 ACosF1(AF1 a){return cosf(a);}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 ADotD2(inAD2 a,inAD2 b){return a[0]*b[0]+a[1]*b[1];}
- A_STATIC AD1 ADotD3(inAD3 a,inAD3 b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2];}
- A_STATIC AD1 ADotD4(inAD4 a,inAD4 b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3];}
- A_STATIC AF1 ADotF2(inAF2 a,inAF2 b){return a[0]*b[0]+a[1]*b[1];}
- A_STATIC AF1 ADotF3(inAF3 a,inAF3 b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2];}
- A_STATIC AF1 ADotF4(inAF4 a,inAF4 b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3];}
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_GCC
- A_STATIC AD1 AExp2D1(AD1 a){return __builtin_exp2(a);}
- A_STATIC AF1 AExp2F1(AF1 a){return __builtin_exp2f(a);}
- #else
- A_STATIC AD1 AExp2D1(AD1 a){return exp2(a);}
- A_STATIC AF1 AExp2F1(AF1 a){return exp2f(a);}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_GCC
- A_STATIC AD1 AFloorD1(AD1 a){return __builtin_floor(a);}
- A_STATIC AF1 AFloorF1(AF1 a){return __builtin_floorf(a);}
- #else
- A_STATIC AD1 AFloorD1(AD1 a){return floor(a);}
- A_STATIC AF1 AFloorF1(AF1 a){return floorf(a);}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 ALerpD1(AD1 a,AD1 b,AD1 c){return b*c+(-a*c+a);}
- A_STATIC AF1 ALerpF1(AF1 a,AF1 b,AF1 c){return b*c+(-a*c+a);}
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_GCC
- A_STATIC AD1 ALog2D1(AD1 a){return __builtin_log2(a);}
- A_STATIC AF1 ALog2F1(AF1 a){return __builtin_log2f(a);}
- #else
- A_STATIC AD1 ALog2D1(AD1 a){return log2(a);}
- A_STATIC AF1 ALog2F1(AF1 a){return log2f(a);}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 AMaxD1(AD1 a,AD1 b){return a>b?a:b;}
- A_STATIC AF1 AMaxF1(AF1 a,AF1 b){return a>b?a:b;}
- A_STATIC AL1 AMaxL1(AL1 a,AL1 b){return a>b?a:b;}
- A_STATIC AU1 AMaxU1(AU1 a,AU1 b){return a>b?a:b;}
-//------------------------------------------------------------------------------------------------------------------------------
- // These follow the convention that A integer types don't have signage, until they are operated on.
- A_STATIC AL1 AMaxSL1(AL1 a,AL1 b){return (ASL1_(a)>ASL1_(b))?a:b;}
- A_STATIC AU1 AMaxSU1(AU1 a,AU1 b){return (ASU1_(a)>ASU1_(b))?a:b;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 AMinD1(AD1 a,AD1 b){return a>ASL1_(b));}
- A_STATIC AU1 AShrSU1(AU1 a,AU1 b){return AU1_(ASU1_(a)>>ASU1_(b));}
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_GCC
- A_STATIC AD1 ASinD1(AD1 a){return __builtin_sin(a);}
- A_STATIC AF1 ASinF1(AF1 a){return __builtin_sinf(a);}
- #else
- A_STATIC AD1 ASinD1(AD1 a){return sin(a);}
- A_STATIC AF1 ASinF1(AF1 a){return sinf(a);}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_GCC
- A_STATIC AD1 ASqrtD1(AD1 a){return __builtin_sqrt(a);}
- A_STATIC AF1 ASqrtF1(AF1 a){return __builtin_sqrtf(a);}
- #else
- A_STATIC AD1 ASqrtD1(AD1 a){return sqrt(a);}
- A_STATIC AF1 ASqrtF1(AF1 a){return sqrtf(a);}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// SCALAR RETURN OPS - DEPENDENT
-//==============================================================================================================================
- A_STATIC AD1 AClampD1(AD1 x,AD1 n,AD1 m){return AMaxD1(n,AMinD1(x,m));}
- A_STATIC AF1 AClampF1(AF1 x,AF1 n,AF1 m){return AMaxF1(n,AMinF1(x,m));}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 AFractD1(AD1 a){return a-AFloorD1(a);}
- A_STATIC AF1 AFractF1(AF1 a){return a-AFloorF1(a);}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 APowD1(AD1 a,AD1 b){return AExp2D1(b*ALog2D1(a));}
- A_STATIC AF1 APowF1(AF1 a,AF1 b){return AExp2F1(b*ALog2F1(a));}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 ARsqD1(AD1 a){return ARcpD1(ASqrtD1(a));}
- A_STATIC AF1 ARsqF1(AF1 a){return ARcpF1(ASqrtF1(a));}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC AD1 ASatD1(AD1 a){return AMinD1(1.0,AMaxD1(0.0,a));}
- A_STATIC AF1 ASatF1(AF1 a){return AMinF1(1.0f,AMaxF1(0.0f,a));}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// VECTOR OPS
-//------------------------------------------------------------------------------------------------------------------------------
-// These are added as needed for production or prototyping, so not necessarily a complete set.
-// They follow a convention of taking in a destination and also returning the destination value to increase utility.
-//==============================================================================================================================
- A_STATIC retAD2 opAAbsD2(outAD2 d,inAD2 a){d[0]=AAbsD1(a[0]);d[1]=AAbsD1(a[1]);return d;}
- A_STATIC retAD3 opAAbsD3(outAD3 d,inAD3 a){d[0]=AAbsD1(a[0]);d[1]=AAbsD1(a[1]);d[2]=AAbsD1(a[2]);return d;}
- A_STATIC retAD4 opAAbsD4(outAD4 d,inAD4 a){d[0]=AAbsD1(a[0]);d[1]=AAbsD1(a[1]);d[2]=AAbsD1(a[2]);d[3]=AAbsD1(a[3]);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAAbsF2(outAF2 d,inAF2 a){d[0]=AAbsF1(a[0]);d[1]=AAbsF1(a[1]);return d;}
- A_STATIC retAF3 opAAbsF3(outAF3 d,inAF3 a){d[0]=AAbsF1(a[0]);d[1]=AAbsF1(a[1]);d[2]=AAbsF1(a[2]);return d;}
- A_STATIC retAF4 opAAbsF4(outAF4 d,inAF4 a){d[0]=AAbsF1(a[0]);d[1]=AAbsF1(a[1]);d[2]=AAbsF1(a[2]);d[3]=AAbsF1(a[3]);return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opAAddD2(outAD2 d,inAD2 a,inAD2 b){d[0]=a[0]+b[0];d[1]=a[1]+b[1];return d;}
- A_STATIC retAD3 opAAddD3(outAD3 d,inAD3 a,inAD3 b){d[0]=a[0]+b[0];d[1]=a[1]+b[1];d[2]=a[2]+b[2];return d;}
- A_STATIC retAD4 opAAddD4(outAD4 d,inAD4 a,inAD4 b){d[0]=a[0]+b[0];d[1]=a[1]+b[1];d[2]=a[2]+b[2];d[3]=a[3]+b[3];return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAAddF2(outAF2 d,inAF2 a,inAF2 b){d[0]=a[0]+b[0];d[1]=a[1]+b[1];return d;}
- A_STATIC retAF3 opAAddF3(outAF3 d,inAF3 a,inAF3 b){d[0]=a[0]+b[0];d[1]=a[1]+b[1];d[2]=a[2]+b[2];return d;}
- A_STATIC retAF4 opAAddF4(outAF4 d,inAF4 a,inAF4 b){d[0]=a[0]+b[0];d[1]=a[1]+b[1];d[2]=a[2]+b[2];d[3]=a[3]+b[3];return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opAAddOneD2(outAD2 d,inAD2 a,AD1 b){d[0]=a[0]+b;d[1]=a[1]+b;return d;}
- A_STATIC retAD3 opAAddOneD3(outAD3 d,inAD3 a,AD1 b){d[0]=a[0]+b;d[1]=a[1]+b;d[2]=a[2]+b;return d;}
- A_STATIC retAD4 opAAddOneD4(outAD4 d,inAD4 a,AD1 b){d[0]=a[0]+b;d[1]=a[1]+b;d[2]=a[2]+b;d[3]=a[3]+b;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAAddOneF2(outAF2 d,inAF2 a,AF1 b){d[0]=a[0]+b;d[1]=a[1]+b;return d;}
- A_STATIC retAF3 opAAddOneF3(outAF3 d,inAF3 a,AF1 b){d[0]=a[0]+b;d[1]=a[1]+b;d[2]=a[2]+b;return d;}
- A_STATIC retAF4 opAAddOneF4(outAF4 d,inAF4 a,AF1 b){d[0]=a[0]+b;d[1]=a[1]+b;d[2]=a[2]+b;d[3]=a[3]+b;return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opACpyD2(outAD2 d,inAD2 a){d[0]=a[0];d[1]=a[1];return d;}
- A_STATIC retAD3 opACpyD3(outAD3 d,inAD3 a){d[0]=a[0];d[1]=a[1];d[2]=a[2];return d;}
- A_STATIC retAD4 opACpyD4(outAD4 d,inAD4 a){d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opACpyF2(outAF2 d,inAF2 a){d[0]=a[0];d[1]=a[1];return d;}
- A_STATIC retAF3 opACpyF3(outAF3 d,inAF3 a){d[0]=a[0];d[1]=a[1];d[2]=a[2];return d;}
- A_STATIC retAF4 opACpyF4(outAF4 d,inAF4 a){d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opALerpD2(outAD2 d,inAD2 a,inAD2 b,inAD2 c){d[0]=ALerpD1(a[0],b[0],c[0]);d[1]=ALerpD1(a[1],b[1],c[1]);return d;}
- A_STATIC retAD3 opALerpD3(outAD3 d,inAD3 a,inAD3 b,inAD3 c){d[0]=ALerpD1(a[0],b[0],c[0]);d[1]=ALerpD1(a[1],b[1],c[1]);d[2]=ALerpD1(a[2],b[2],c[2]);return d;}
- A_STATIC retAD4 opALerpD4(outAD4 d,inAD4 a,inAD4 b,inAD4 c){d[0]=ALerpD1(a[0],b[0],c[0]);d[1]=ALerpD1(a[1],b[1],c[1]);d[2]=ALerpD1(a[2],b[2],c[2]);d[3]=ALerpD1(a[3],b[3],c[3]);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opALerpF2(outAF2 d,inAF2 a,inAF2 b,inAF2 c){d[0]=ALerpF1(a[0],b[0],c[0]);d[1]=ALerpF1(a[1],b[1],c[1]);return d;}
- A_STATIC retAF3 opALerpF3(outAF3 d,inAF3 a,inAF3 b,inAF3 c){d[0]=ALerpF1(a[0],b[0],c[0]);d[1]=ALerpF1(a[1],b[1],c[1]);d[2]=ALerpF1(a[2],b[2],c[2]);return d;}
- A_STATIC retAF4 opALerpF4(outAF4 d,inAF4 a,inAF4 b,inAF4 c){d[0]=ALerpF1(a[0],b[0],c[0]);d[1]=ALerpF1(a[1],b[1],c[1]);d[2]=ALerpF1(a[2],b[2],c[2]);d[3]=ALerpF1(a[3],b[3],c[3]);return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opALerpOneD2(outAD2 d,inAD2 a,inAD2 b,AD1 c){d[0]=ALerpD1(a[0],b[0],c);d[1]=ALerpD1(a[1],b[1],c);return d;}
- A_STATIC retAD3 opALerpOneD3(outAD3 d,inAD3 a,inAD3 b,AD1 c){d[0]=ALerpD1(a[0],b[0],c);d[1]=ALerpD1(a[1],b[1],c);d[2]=ALerpD1(a[2],b[2],c);return d;}
- A_STATIC retAD4 opALerpOneD4(outAD4 d,inAD4 a,inAD4 b,AD1 c){d[0]=ALerpD1(a[0],b[0],c);d[1]=ALerpD1(a[1],b[1],c);d[2]=ALerpD1(a[2],b[2],c);d[3]=ALerpD1(a[3],b[3],c);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opALerpOneF2(outAF2 d,inAF2 a,inAF2 b,AF1 c){d[0]=ALerpF1(a[0],b[0],c);d[1]=ALerpF1(a[1],b[1],c);return d;}
- A_STATIC retAF3 opALerpOneF3(outAF3 d,inAF3 a,inAF3 b,AF1 c){d[0]=ALerpF1(a[0],b[0],c);d[1]=ALerpF1(a[1],b[1],c);d[2]=ALerpF1(a[2],b[2],c);return d;}
- A_STATIC retAF4 opALerpOneF4(outAF4 d,inAF4 a,inAF4 b,AF1 c){d[0]=ALerpF1(a[0],b[0],c);d[1]=ALerpF1(a[1],b[1],c);d[2]=ALerpF1(a[2],b[2],c);d[3]=ALerpF1(a[3],b[3],c);return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opAMaxD2(outAD2 d,inAD2 a,inAD2 b){d[0]=AMaxD1(a[0],b[0]);d[1]=AMaxD1(a[1],b[1]);return d;}
- A_STATIC retAD3 opAMaxD3(outAD3 d,inAD3 a,inAD3 b){d[0]=AMaxD1(a[0],b[0]);d[1]=AMaxD1(a[1],b[1]);d[2]=AMaxD1(a[2],b[2]);return d;}
- A_STATIC retAD4 opAMaxD4(outAD4 d,inAD4 a,inAD4 b){d[0]=AMaxD1(a[0],b[0]);d[1]=AMaxD1(a[1],b[1]);d[2]=AMaxD1(a[2],b[2]);d[3]=AMaxD1(a[3],b[3]);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAMaxF2(outAF2 d,inAF2 a,inAF2 b){d[0]=AMaxF1(a[0],b[0]);d[1]=AMaxF1(a[1],b[1]);return d;}
- A_STATIC retAF3 opAMaxF3(outAF3 d,inAF3 a,inAF3 b){d[0]=AMaxF1(a[0],b[0]);d[1]=AMaxF1(a[1],b[1]);d[2]=AMaxF1(a[2],b[2]);return d;}
- A_STATIC retAF4 opAMaxF4(outAF4 d,inAF4 a,inAF4 b){d[0]=AMaxF1(a[0],b[0]);d[1]=AMaxF1(a[1],b[1]);d[2]=AMaxF1(a[2],b[2]);d[3]=AMaxF1(a[3],b[3]);return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opAMinD2(outAD2 d,inAD2 a,inAD2 b){d[0]=AMinD1(a[0],b[0]);d[1]=AMinD1(a[1],b[1]);return d;}
- A_STATIC retAD3 opAMinD3(outAD3 d,inAD3 a,inAD3 b){d[0]=AMinD1(a[0],b[0]);d[1]=AMinD1(a[1],b[1]);d[2]=AMinD1(a[2],b[2]);return d;}
- A_STATIC retAD4 opAMinD4(outAD4 d,inAD4 a,inAD4 b){d[0]=AMinD1(a[0],b[0]);d[1]=AMinD1(a[1],b[1]);d[2]=AMinD1(a[2],b[2]);d[3]=AMinD1(a[3],b[3]);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAMinF2(outAF2 d,inAF2 a,inAF2 b){d[0]=AMinF1(a[0],b[0]);d[1]=AMinF1(a[1],b[1]);return d;}
- A_STATIC retAF3 opAMinF3(outAF3 d,inAF3 a,inAF3 b){d[0]=AMinF1(a[0],b[0]);d[1]=AMinF1(a[1],b[1]);d[2]=AMinF1(a[2],b[2]);return d;}
- A_STATIC retAF4 opAMinF4(outAF4 d,inAF4 a,inAF4 b){d[0]=AMinF1(a[0],b[0]);d[1]=AMinF1(a[1],b[1]);d[2]=AMinF1(a[2],b[2]);d[3]=AMinF1(a[3],b[3]);return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opAMulD2(outAD2 d,inAD2 a,inAD2 b){d[0]=a[0]*b[0];d[1]=a[1]*b[1];return d;}
- A_STATIC retAD3 opAMulD3(outAD3 d,inAD3 a,inAD3 b){d[0]=a[0]*b[0];d[1]=a[1]*b[1];d[2]=a[2]*b[2];return d;}
- A_STATIC retAD4 opAMulD4(outAD4 d,inAD4 a,inAD4 b){d[0]=a[0]*b[0];d[1]=a[1]*b[1];d[2]=a[2]*b[2];d[3]=a[3]*b[3];return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAMulF2(outAF2 d,inAF2 a,inAF2 b){d[0]=a[0]*b[0];d[1]=a[1]*b[1];return d;}
- A_STATIC retAF3 opAMulF3(outAF3 d,inAF3 a,inAF3 b){d[0]=a[0]*b[0];d[1]=a[1]*b[1];d[2]=a[2]*b[2];return d;}
- A_STATIC retAF4 opAMulF4(outAF4 d,inAF4 a,inAF4 b){d[0]=a[0]*b[0];d[1]=a[1]*b[1];d[2]=a[2]*b[2];d[3]=a[3]*b[3];return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opAMulOneD2(outAD2 d,inAD2 a,AD1 b){d[0]=a[0]*b;d[1]=a[1]*b;return d;}
- A_STATIC retAD3 opAMulOneD3(outAD3 d,inAD3 a,AD1 b){d[0]=a[0]*b;d[1]=a[1]*b;d[2]=a[2]*b;return d;}
- A_STATIC retAD4 opAMulOneD4(outAD4 d,inAD4 a,AD1 b){d[0]=a[0]*b;d[1]=a[1]*b;d[2]=a[2]*b;d[3]=a[3]*b;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opAMulOneF2(outAF2 d,inAF2 a,AF1 b){d[0]=a[0]*b;d[1]=a[1]*b;return d;}
- A_STATIC retAF3 opAMulOneF3(outAF3 d,inAF3 a,AF1 b){d[0]=a[0]*b;d[1]=a[1]*b;d[2]=a[2]*b;return d;}
- A_STATIC retAF4 opAMulOneF4(outAF4 d,inAF4 a,AF1 b){d[0]=a[0]*b;d[1]=a[1]*b;d[2]=a[2]*b;d[3]=a[3]*b;return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opANegD2(outAD2 d,inAD2 a){d[0]=-a[0];d[1]=-a[1];return d;}
- A_STATIC retAD3 opANegD3(outAD3 d,inAD3 a){d[0]=-a[0];d[1]=-a[1];d[2]=-a[2];return d;}
- A_STATIC retAD4 opANegD4(outAD4 d,inAD4 a){d[0]=-a[0];d[1]=-a[1];d[2]=-a[2];d[3]=-a[3];return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opANegF2(outAF2 d,inAF2 a){d[0]=-a[0];d[1]=-a[1];return d;}
- A_STATIC retAF3 opANegF3(outAF3 d,inAF3 a){d[0]=-a[0];d[1]=-a[1];d[2]=-a[2];return d;}
- A_STATIC retAF4 opANegF4(outAF4 d,inAF4 a){d[0]=-a[0];d[1]=-a[1];d[2]=-a[2];d[3]=-a[3];return d;}
-//==============================================================================================================================
- A_STATIC retAD2 opARcpD2(outAD2 d,inAD2 a){d[0]=ARcpD1(a[0]);d[1]=ARcpD1(a[1]);return d;}
- A_STATIC retAD3 opARcpD3(outAD3 d,inAD3 a){d[0]=ARcpD1(a[0]);d[1]=ARcpD1(a[1]);d[2]=ARcpD1(a[2]);return d;}
- A_STATIC retAD4 opARcpD4(outAD4 d,inAD4 a){d[0]=ARcpD1(a[0]);d[1]=ARcpD1(a[1]);d[2]=ARcpD1(a[2]);d[3]=ARcpD1(a[3]);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- A_STATIC retAF2 opARcpF2(outAF2 d,inAF2 a){d[0]=ARcpF1(a[0]);d[1]=ARcpF1(a[1]);return d;}
- A_STATIC retAF3 opARcpF3(outAF3 d,inAF3 a){d[0]=ARcpF1(a[0]);d[1]=ARcpF1(a[1]);d[2]=ARcpF1(a[2]);return d;}
- A_STATIC retAF4 opARcpF4(outAF4 d,inAF4 a){d[0]=ARcpF1(a[0]);d[1]=ARcpF1(a[1]);d[2]=ARcpF1(a[2]);d[3]=ARcpF1(a[3]);return d;}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// HALF FLOAT PACKING
-//==============================================================================================================================
- // Convert float to half (in lower 16-bits of output).
- // Same fast technique as documented here: ftp://ftp.fox-toolkit.org/pub/fasthalffloatconversion.pdf
- // Supports denormals.
- // Conversion rules are to make computations possibly "safer" on the GPU,
- // -INF & -NaN -> -65504
- // +INF & +NaN -> +65504
- A_STATIC AU1 AU1_AH1_AF1(AF1 f){
- static AW1 base[512]={
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,
- 0x0200,0x0400,0x0800,0x0c00,0x1000,0x1400,0x1800,0x1c00,0x2000,0x2400,0x2800,0x2c00,0x3000,0x3400,0x3800,0x3c00,
- 0x4000,0x4400,0x4800,0x4c00,0x5000,0x5400,0x5800,0x5c00,0x6000,0x6400,0x6800,0x6c00,0x7000,0x7400,0x7800,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,0x7bff,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
- 0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8001,0x8002,0x8004,0x8008,0x8010,0x8020,0x8040,0x8080,0x8100,
- 0x8200,0x8400,0x8800,0x8c00,0x9000,0x9400,0x9800,0x9c00,0xa000,0xa400,0xa800,0xac00,0xb000,0xb400,0xb800,0xbc00,
- 0xc000,0xc400,0xc800,0xcc00,0xd000,0xd400,0xd800,0xdc00,0xe000,0xe400,0xe800,0xec00,0xf000,0xf400,0xf800,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,
- 0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff,0xfbff};
- static AB1 shift[512]={
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,
- 0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
- 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,
- 0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,
- 0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18};
- union{AF1 f;AU1 u;}bits;bits.f=f;AU1 u=bits.u;AU1 i=u>>23;return (AU1)(base[i])+((u&0x7fffff)>>shift[i]);}
-//------------------------------------------------------------------------------------------------------------------------------
- // Used to output packed constant.
- A_STATIC AU1 AU1_AH2_AF2(inAF2 a){return AU1_AH1_AF1(a[0])+(AU1_AH1_AF1(a[1])<<16);}
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-//
-// GLSL
-//
-//
-//==============================================================================================================================
-#if defined(A_GLSL) && defined(A_GPU)
- #ifndef A_SKIP_EXT
- #ifdef A_HALF
- #extension GL_EXT_shader_16bit_storage:require
- #extension GL_EXT_shader_explicit_arithmetic_types:require
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_LONG
- #extension GL_ARB_gpu_shader_int64:require
- #extension GL_NV_shader_atomic_int64:require
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_WAVE
- #extension GL_KHR_shader_subgroup_arithmetic:require
- #extension GL_KHR_shader_subgroup_ballot:require
- #extension GL_KHR_shader_subgroup_quad:require
- #extension GL_KHR_shader_subgroup_shuffle:require
- #endif
- #endif
-//==============================================================================================================================
- #define AP1 bool
- #define AP2 bvec2
- #define AP3 bvec3
- #define AP4 bvec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AF1 float
- #define AF2 vec2
- #define AF3 vec3
- #define AF4 vec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1 uint
- #define AU2 uvec2
- #define AU3 uvec3
- #define AU4 uvec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASU1 int
- #define ASU2 ivec2
- #define ASU3 ivec3
- #define ASU4 ivec4
-//==============================================================================================================================
- #define AF1_AU1(x) uintBitsToFloat(AU1(x))
- #define AF2_AU2(x) uintBitsToFloat(AU2(x))
- #define AF3_AU3(x) uintBitsToFloat(AU3(x))
- #define AF4_AU4(x) uintBitsToFloat(AU4(x))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1_AF1(x) floatBitsToUint(AF1(x))
- #define AU2_AF2(x) floatBitsToUint(AF2(x))
- #define AU3_AF3(x) floatBitsToUint(AF3(x))
- #define AU4_AF4(x) floatBitsToUint(AF4(x))
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AU1_AH1_AF1_x(AF1 a){return packHalf2x16(AF2(a,0.0));}
- #define AU1_AH1_AF1(a) AU1_AH1_AF1_x(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1_AH2_AF2 packHalf2x16
- #define AU1_AW2Unorm_AF2 packUnorm2x16
- #define AU1_AB4Unorm_AF4 packUnorm4x8
-//------------------------------------------------------------------------------------------------------------------------------
- #define AF2_AH2_AU1 unpackHalf2x16
- #define AF2_AW2Unorm_AU1 unpackUnorm2x16
- #define AF4_AB4Unorm_AU1 unpackUnorm4x8
-//==============================================================================================================================
- AF1 AF1_x(AF1 a){return AF1(a);}
- AF2 AF2_x(AF1 a){return AF2(a,a);}
- AF3 AF3_x(AF1 a){return AF3(a,a,a);}
- AF4 AF4_x(AF1 a){return AF4(a,a,a,a);}
- #define AF1_(a) AF1_x(AF1(a))
- #define AF2_(a) AF2_x(AF1(a))
- #define AF3_(a) AF3_x(AF1(a))
- #define AF4_(a) AF4_x(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AU1_x(AU1 a){return AU1(a);}
- AU2 AU2_x(AU1 a){return AU2(a,a);}
- AU3 AU3_x(AU1 a){return AU3(a,a,a);}
- AU4 AU4_x(AU1 a){return AU4(a,a,a,a);}
- #define AU1_(a) AU1_x(AU1(a))
- #define AU2_(a) AU2_x(AU1(a))
- #define AU3_(a) AU3_x(AU1(a))
- #define AU4_(a) AU4_x(AU1(a))
-//==============================================================================================================================
- AU1 AAbsSU1(AU1 a){return AU1(abs(ASU1(a)));}
- AU2 AAbsSU2(AU2 a){return AU2(abs(ASU2(a)));}
- AU3 AAbsSU3(AU3 a){return AU3(abs(ASU3(a)));}
- AU4 AAbsSU4(AU4 a){return AU4(abs(ASU4(a)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 ABfe(AU1 src,AU1 off,AU1 bits){return bitfieldExtract(src,ASU1(off),ASU1(bits));}
- AU1 ABfi(AU1 src,AU1 ins,AU1 mask){return (ins&mask)|(src&(~mask));}
- // Proxy for V_BFI_B32 where the 'mask' is set as 'bits', 'mask=(1<>ASU1(b));}
- AU2 AShrSU2(AU2 a,AU2 b){return AU2(ASU2(a)>>ASU2(b));}
- AU3 AShrSU3(AU3 a,AU3 b){return AU3(ASU3(a)>>ASU3(b));}
- AU4 AShrSU4(AU4 a,AU4 b){return AU4(ASU4(a)>>ASU4(b));}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// GLSL BYTE
-//==============================================================================================================================
- #ifdef A_BYTE
- #define AB1 uint8_t
- #define AB2 u8vec2
- #define AB3 u8vec3
- #define AB4 u8vec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASB1 int8_t
- #define ASB2 i8vec2
- #define ASB3 i8vec3
- #define ASB4 i8vec4
-//------------------------------------------------------------------------------------------------------------------------------
- AB1 AB1_x(AB1 a){return AB1(a);}
- AB2 AB2_x(AB1 a){return AB2(a,a);}
- AB3 AB3_x(AB1 a){return AB3(a,a,a);}
- AB4 AB4_x(AB1 a){return AB4(a,a,a,a);}
- #define AB1_(a) AB1_x(AB1(a))
- #define AB2_(a) AB2_x(AB1(a))
- #define AB3_(a) AB3_x(AB1(a))
- #define AB4_(a) AB4_x(AB1(a))
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// GLSL HALF
-//==============================================================================================================================
- #ifdef A_HALF
- #define AH1 float16_t
- #define AH2 f16vec2
- #define AH3 f16vec3
- #define AH4 f16vec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AW1 uint16_t
- #define AW2 u16vec2
- #define AW3 u16vec3
- #define AW4 u16vec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASW1 int16_t
- #define ASW2 i16vec2
- #define ASW3 i16vec3
- #define ASW4 i16vec4
-//==============================================================================================================================
- #define AH2_AU1(x) unpackFloat2x16(AU1(x))
- AH4 AH4_AU2_x(AU2 x){return AH4(unpackFloat2x16(x.x),unpackFloat2x16(x.y));}
- #define AH4_AU2(x) AH4_AU2_x(AU2(x))
- #define AW2_AU1(x) unpackUint2x16(AU1(x))
- #define AW4_AU2(x) unpackUint4x16(pack64(AU2(x)))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1_AH2(x) packFloat2x16(AH2(x))
- AU2 AU2_AH4_x(AH4 x){return AU2(packFloat2x16(x.xy),packFloat2x16(x.zw));}
- #define AU2_AH4(x) AU2_AH4_x(AH4(x))
- #define AU1_AW2(x) packUint2x16(AW2(x))
- #define AU2_AW4(x) unpack32(packUint4x16(AW4(x)))
-//==============================================================================================================================
- #define AW1_AH1(x) halfBitsToUint16(AH1(x))
- #define AW2_AH2(x) halfBitsToUint16(AH2(x))
- #define AW3_AH3(x) halfBitsToUint16(AH3(x))
- #define AW4_AH4(x) halfBitsToUint16(AH4(x))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AH1_AW1(x) uint16BitsToHalf(AW1(x))
- #define AH2_AW2(x) uint16BitsToHalf(AW2(x))
- #define AH3_AW3(x) uint16BitsToHalf(AW3(x))
- #define AH4_AW4(x) uint16BitsToHalf(AW4(x))
-//==============================================================================================================================
- AH1 AH1_x(AH1 a){return AH1(a);}
- AH2 AH2_x(AH1 a){return AH2(a,a);}
- AH3 AH3_x(AH1 a){return AH3(a,a,a);}
- AH4 AH4_x(AH1 a){return AH4(a,a,a,a);}
- #define AH1_(a) AH1_x(AH1(a))
- #define AH2_(a) AH2_x(AH1(a))
- #define AH3_(a) AH3_x(AH1(a))
- #define AH4_(a) AH4_x(AH1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AW1_x(AW1 a){return AW1(a);}
- AW2 AW2_x(AW1 a){return AW2(a,a);}
- AW3 AW3_x(AW1 a){return AW3(a,a,a);}
- AW4 AW4_x(AW1 a){return AW4(a,a,a,a);}
- #define AW1_(a) AW1_x(AW1(a))
- #define AW2_(a) AW2_x(AW1(a))
- #define AW3_(a) AW3_x(AW1(a))
- #define AW4_(a) AW4_x(AW1(a))
-//==============================================================================================================================
- AW1 AAbsSW1(AW1 a){return AW1(abs(ASW1(a)));}
- AW2 AAbsSW2(AW2 a){return AW2(abs(ASW2(a)));}
- AW3 AAbsSW3(AW3 a){return AW3(abs(ASW3(a)));}
- AW4 AAbsSW4(AW4 a){return AW4(abs(ASW4(a)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AClampH1(AH1 x,AH1 n,AH1 m){return clamp(x,n,m);}
- AH2 AClampH2(AH2 x,AH2 n,AH2 m){return clamp(x,n,m);}
- AH3 AClampH3(AH3 x,AH3 n,AH3 m){return clamp(x,n,m);}
- AH4 AClampH4(AH4 x,AH4 n,AH4 m){return clamp(x,n,m);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AFractH1(AH1 x){return fract(x);}
- AH2 AFractH2(AH2 x){return fract(x);}
- AH3 AFractH3(AH3 x){return fract(x);}
- AH4 AFractH4(AH4 x){return fract(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ALerpH1(AH1 x,AH1 y,AH1 a){return mix(x,y,a);}
- AH2 ALerpH2(AH2 x,AH2 y,AH2 a){return mix(x,y,a);}
- AH3 ALerpH3(AH3 x,AH3 y,AH3 a){return mix(x,y,a);}
- AH4 ALerpH4(AH4 x,AH4 y,AH4 a){return mix(x,y,a);}
-//------------------------------------------------------------------------------------------------------------------------------
- // No packed version of max3.
- AH1 AMax3H1(AH1 x,AH1 y,AH1 z){return max(x,max(y,z));}
- AH2 AMax3H2(AH2 x,AH2 y,AH2 z){return max(x,max(y,z));}
- AH3 AMax3H3(AH3 x,AH3 y,AH3 z){return max(x,max(y,z));}
- AH4 AMax3H4(AH4 x,AH4 y,AH4 z){return max(x,max(y,z));}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AMaxSW1(AW1 a,AW1 b){return AW1(max(ASU1(a),ASU1(b)));}
- AW2 AMaxSW2(AW2 a,AW2 b){return AW2(max(ASU2(a),ASU2(b)));}
- AW3 AMaxSW3(AW3 a,AW3 b){return AW3(max(ASU3(a),ASU3(b)));}
- AW4 AMaxSW4(AW4 a,AW4 b){return AW4(max(ASU4(a),ASU4(b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- // No packed version of min3.
- AH1 AMin3H1(AH1 x,AH1 y,AH1 z){return min(x,min(y,z));}
- AH2 AMin3H2(AH2 x,AH2 y,AH2 z){return min(x,min(y,z));}
- AH3 AMin3H3(AH3 x,AH3 y,AH3 z){return min(x,min(y,z));}
- AH4 AMin3H4(AH4 x,AH4 y,AH4 z){return min(x,min(y,z));}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AMinSW1(AW1 a,AW1 b){return AW1(min(ASU1(a),ASU1(b)));}
- AW2 AMinSW2(AW2 a,AW2 b){return AW2(min(ASU2(a),ASU2(b)));}
- AW3 AMinSW3(AW3 a,AW3 b){return AW3(min(ASU3(a),ASU3(b)));}
- AW4 AMinSW4(AW4 a,AW4 b){return AW4(min(ASU4(a),ASU4(b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ARcpH1(AH1 x){return AH1_(1.0)/x;}
- AH2 ARcpH2(AH2 x){return AH2_(1.0)/x;}
- AH3 ARcpH3(AH3 x){return AH3_(1.0)/x;}
- AH4 ARcpH4(AH4 x){return AH4_(1.0)/x;}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ARsqH1(AH1 x){return AH1_(1.0)/sqrt(x);}
- AH2 ARsqH2(AH2 x){return AH2_(1.0)/sqrt(x);}
- AH3 ARsqH3(AH3 x){return AH3_(1.0)/sqrt(x);}
- AH4 ARsqH4(AH4 x){return AH4_(1.0)/sqrt(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ASatH1(AH1 x){return clamp(x,AH1_(0.0),AH1_(1.0));}
- AH2 ASatH2(AH2 x){return clamp(x,AH2_(0.0),AH2_(1.0));}
- AH3 ASatH3(AH3 x){return clamp(x,AH3_(0.0),AH3_(1.0));}
- AH4 ASatH4(AH4 x){return clamp(x,AH4_(0.0),AH4_(1.0));}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AShrSW1(AW1 a,AW1 b){return AW1(ASW1(a)>>ASW1(b));}
- AW2 AShrSW2(AW2 a,AW2 b){return AW2(ASW2(a)>>ASW2(b));}
- AW3 AShrSW3(AW3 a,AW3 b){return AW3(ASW3(a)>>ASW3(b));}
- AW4 AShrSW4(AW4 a,AW4 b){return AW4(ASW4(a)>>ASW4(b));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// GLSL DOUBLE
-//==============================================================================================================================
- #ifdef A_DUBL
- #define AD1 double
- #define AD2 dvec2
- #define AD3 dvec3
- #define AD4 dvec4
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 AD1_x(AD1 a){return AD1(a);}
- AD2 AD2_x(AD1 a){return AD2(a,a);}
- AD3 AD3_x(AD1 a){return AD3(a,a,a);}
- AD4 AD4_x(AD1 a){return AD4(a,a,a,a);}
- #define AD1_(a) AD1_x(AD1(a))
- #define AD2_(a) AD2_x(AD1(a))
- #define AD3_(a) AD3_x(AD1(a))
- #define AD4_(a) AD4_x(AD1(a))
-//==============================================================================================================================
- AD1 AFractD1(AD1 x){return fract(x);}
- AD2 AFractD2(AD2 x){return fract(x);}
- AD3 AFractD3(AD3 x){return fract(x);}
- AD4 AFractD4(AD4 x){return fract(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ALerpD1(AD1 x,AD1 y,AD1 a){return mix(x,y,a);}
- AD2 ALerpD2(AD2 x,AD2 y,AD2 a){return mix(x,y,a);}
- AD3 ALerpD3(AD3 x,AD3 y,AD3 a){return mix(x,y,a);}
- AD4 ALerpD4(AD4 x,AD4 y,AD4 a){return mix(x,y,a);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ARcpD1(AD1 x){return AD1_(1.0)/x;}
- AD2 ARcpD2(AD2 x){return AD2_(1.0)/x;}
- AD3 ARcpD3(AD3 x){return AD3_(1.0)/x;}
- AD4 ARcpD4(AD4 x){return AD4_(1.0)/x;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ARsqD1(AD1 x){return AD1_(1.0)/sqrt(x);}
- AD2 ARsqD2(AD2 x){return AD2_(1.0)/sqrt(x);}
- AD3 ARsqD3(AD3 x){return AD3_(1.0)/sqrt(x);}
- AD4 ARsqD4(AD4 x){return AD4_(1.0)/sqrt(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ASatD1(AD1 x){return clamp(x,AD1_(0.0),AD1_(1.0));}
- AD2 ASatD2(AD2 x){return clamp(x,AD2_(0.0),AD2_(1.0));}
- AD3 ASatD3(AD3 x){return clamp(x,AD3_(0.0),AD3_(1.0));}
- AD4 ASatD4(AD4 x){return clamp(x,AD4_(0.0),AD4_(1.0));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// GLSL LONG
-//==============================================================================================================================
- #ifdef A_LONG
- #define AL1 uint64_t
- #define AL2 u64vec2
- #define AL3 u64vec3
- #define AL4 u64vec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASL1 int64_t
- #define ASL2 i64vec2
- #define ASL3 i64vec3
- #define ASL4 i64vec4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AL1_AU2(x) packUint2x32(AU2(x))
- #define AU2_AL1(x) unpackUint2x32(AL1(x))
-//------------------------------------------------------------------------------------------------------------------------------
- AL1 AL1_x(AL1 a){return AL1(a);}
- AL2 AL2_x(AL1 a){return AL2(a,a);}
- AL3 AL3_x(AL1 a){return AL3(a,a,a);}
- AL4 AL4_x(AL1 a){return AL4(a,a,a,a);}
- #define AL1_(a) AL1_x(AL1(a))
- #define AL2_(a) AL2_x(AL1(a))
- #define AL3_(a) AL3_x(AL1(a))
- #define AL4_(a) AL4_x(AL1(a))
-//==============================================================================================================================
- AL1 AAbsSL1(AL1 a){return AL1(abs(ASL1(a)));}
- AL2 AAbsSL2(AL2 a){return AL2(abs(ASL2(a)));}
- AL3 AAbsSL3(AL3 a){return AL3(abs(ASL3(a)));}
- AL4 AAbsSL4(AL4 a){return AL4(abs(ASL4(a)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AL1 AMaxSL1(AL1 a,AL1 b){return AL1(max(ASU1(a),ASU1(b)));}
- AL2 AMaxSL2(AL2 a,AL2 b){return AL2(max(ASU2(a),ASU2(b)));}
- AL3 AMaxSL3(AL3 a,AL3 b){return AL3(max(ASU3(a),ASU3(b)));}
- AL4 AMaxSL4(AL4 a,AL4 b){return AL4(max(ASU4(a),ASU4(b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AL1 AMinSL1(AL1 a,AL1 b){return AL1(min(ASU1(a),ASU1(b)));}
- AL2 AMinSL2(AL2 a,AL2 b){return AL2(min(ASU2(a),ASU2(b)));}
- AL3 AMinSL3(AL3 a,AL3 b){return AL3(min(ASU3(a),ASU3(b)));}
- AL4 AMinSL4(AL4 a,AL4 b){return AL4(min(ASU4(a),ASU4(b)));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// WAVE OPERATIONS
-//==============================================================================================================================
- #ifdef A_WAVE
- // Where 'x' must be a compile time literal.
- AF1 AWaveXorF1(AF1 v,AU1 x){return subgroupShuffleXor(v,x);}
- AF2 AWaveXorF2(AF2 v,AU1 x){return subgroupShuffleXor(v,x);}
- AF3 AWaveXorF3(AF3 v,AU1 x){return subgroupShuffleXor(v,x);}
- AF4 AWaveXorF4(AF4 v,AU1 x){return subgroupShuffleXor(v,x);}
- AU1 AWaveXorU1(AU1 v,AU1 x){return subgroupShuffleXor(v,x);}
- AU2 AWaveXorU2(AU2 v,AU1 x){return subgroupShuffleXor(v,x);}
- AU3 AWaveXorU3(AU3 v,AU1 x){return subgroupShuffleXor(v,x);}
- AU4 AWaveXorU4(AU4 v,AU1 x){return subgroupShuffleXor(v,x);}
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_HALF
- AH2 AWaveXorH2(AH2 v,AU1 x){return AH2_AU1(subgroupShuffleXor(AU1_AH2(v),x));}
- AH4 AWaveXorH4(AH4 v,AU1 x){return AH4_AU2(subgroupShuffleXor(AU2_AH4(v),x));}
- AW2 AWaveXorW2(AW2 v,AU1 x){return AW2_AU1(subgroupShuffleXor(AU1_AW2(v),x));}
- AW4 AWaveXorW4(AW4 v,AU1 x){return AW4_AU2(subgroupShuffleXor(AU2_AW4(v),x));}
- #endif
- #endif
-//==============================================================================================================================
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-//
-// HLSL
-//
-//
-//==============================================================================================================================
-#if defined(A_HLSL) && defined(A_GPU)
- #ifdef A_HLSL_6_2
- #define AP1 bool
- #define AP2 bool2
- #define AP3 bool3
- #define AP4 bool4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AF1 float32_t
- #define AF2 float32_t2
- #define AF3 float32_t3
- #define AF4 float32_t4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1 uint32_t
- #define AU2 uint32_t2
- #define AU3 uint32_t3
- #define AU4 uint32_t4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASU1 int32_t
- #define ASU2 int32_t2
- #define ASU3 int32_t3
- #define ASU4 int32_t4
- #else
- #define AP1 bool
- #define AP2 bool2
- #define AP3 bool3
- #define AP4 bool4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AF1 float
- #define AF2 float2
- #define AF3 float3
- #define AF4 float4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1 uint
- #define AU2 uint2
- #define AU3 uint3
- #define AU4 uint4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASU1 int
- #define ASU2 int2
- #define ASU3 int3
- #define ASU4 int4
- #endif
-//==============================================================================================================================
- #define AF1_AU1(x) asfloat(AU1(x))
- #define AF2_AU2(x) asfloat(AU2(x))
- #define AF3_AU3(x) asfloat(AU3(x))
- #define AF4_AU4(x) asfloat(AU4(x))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AU1_AF1(x) asuint(AF1(x))
- #define AU2_AF2(x) asuint(AF2(x))
- #define AU3_AF3(x) asuint(AF3(x))
- #define AU4_AF4(x) asuint(AF4(x))
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AU1_AH1_AF1_x(AF1 a){return f32tof16(a);}
- #define AU1_AH1_AF1(a) AU1_AH1_AF1_x(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AU1_AH2_AF2_x(AF2 a){return f32tof16(a.x)|(f32tof16(a.y)<<16);}
- #define AU1_AH2_AF2(a) AU1_AH2_AF2_x(AF2(a))
- #define AU1_AB4Unorm_AF4(x) D3DCOLORtoUBYTE4(AF4(x))
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 AF2_AH2_AU1_x(AU1 x){return AF2(f16tof32(x&0xFFFF),f16tof32(x>>16));}
- #define AF2_AH2_AU1(x) AF2_AH2_AU1_x(AU1(x))
-//==============================================================================================================================
- AF1 AF1_x(AF1 a){return AF1(a);}
- AF2 AF2_x(AF1 a){return AF2(a,a);}
- AF3 AF3_x(AF1 a){return AF3(a,a,a);}
- AF4 AF4_x(AF1 a){return AF4(a,a,a,a);}
- #define AF1_(a) AF1_x(AF1(a))
- #define AF2_(a) AF2_x(AF1(a))
- #define AF3_(a) AF3_x(AF1(a))
- #define AF4_(a) AF4_x(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AU1_x(AU1 a){return AU1(a);}
- AU2 AU2_x(AU1 a){return AU2(a,a);}
- AU3 AU3_x(AU1 a){return AU3(a,a,a);}
- AU4 AU4_x(AU1 a){return AU4(a,a,a,a);}
- #define AU1_(a) AU1_x(AU1(a))
- #define AU2_(a) AU2_x(AU1(a))
- #define AU3_(a) AU3_x(AU1(a))
- #define AU4_(a) AU4_x(AU1(a))
-//==============================================================================================================================
- AU1 AAbsSU1(AU1 a){return AU1(abs(ASU1(a)));}
- AU2 AAbsSU2(AU2 a){return AU2(abs(ASU2(a)));}
- AU3 AAbsSU3(AU3 a){return AU3(abs(ASU3(a)));}
- AU4 AAbsSU4(AU4 a){return AU4(abs(ASU4(a)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 ABfe(AU1 src,AU1 off,AU1 bits){AU1 mask=(1u<>off)&mask;}
- AU1 ABfi(AU1 src,AU1 ins,AU1 mask){return (ins&mask)|(src&(~mask));}
- AU1 ABfiM(AU1 src,AU1 ins,AU1 bits){AU1 mask=(1u<>ASU1(b));}
- AU2 AShrSU2(AU2 a,AU2 b){return AU2(ASU2(a)>>ASU2(b));}
- AU3 AShrSU3(AU3 a,AU3 b){return AU3(ASU3(a)>>ASU3(b));}
- AU4 AShrSU4(AU4 a,AU4 b){return AU4(ASU4(a)>>ASU4(b));}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// HLSL BYTE
-//==============================================================================================================================
- #ifdef A_BYTE
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// HLSL HALF
-//==============================================================================================================================
- #ifdef A_HALF
- #ifdef A_HLSL_6_2
- #define AH1 float16_t
- #define AH2 float16_t2
- #define AH3 float16_t3
- #define AH4 float16_t4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AW1 uint16_t
- #define AW2 uint16_t2
- #define AW3 uint16_t3
- #define AW4 uint16_t4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASW1 int16_t
- #define ASW2 int16_t2
- #define ASW3 int16_t3
- #define ASW4 int16_t4
- #else
- #define AH1 min16float
- #define AH2 min16float2
- #define AH3 min16float3
- #define AH4 min16float4
-//------------------------------------------------------------------------------------------------------------------------------
- #define AW1 min16uint
- #define AW2 min16uint2
- #define AW3 min16uint3
- #define AW4 min16uint4
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASW1 min16int
- #define ASW2 min16int2
- #define ASW3 min16int3
- #define ASW4 min16int4
- #endif
-//==============================================================================================================================
- // Need to use manual unpack to get optimal execution (don't use packed types in buffers directly).
- // Unpack requires this pattern: https://gpuopen.com/first-steps-implementing-fp16/
- AH2 AH2_AU1_x(AU1 x){AF2 t=f16tof32(AU2(x&0xFFFF,x>>16));return AH2(t);}
- AH4 AH4_AU2_x(AU2 x){return AH4(AH2_AU1_x(x.x),AH2_AU1_x(x.y));}
- AW2 AW2_AU1_x(AU1 x){AU2 t=AU2(x&0xFFFF,x>>16);return AW2(t);}
- AW4 AW4_AU2_x(AU2 x){return AW4(AW2_AU1_x(x.x),AW2_AU1_x(x.y));}
- #define AH2_AU1(x) AH2_AU1_x(AU1(x))
- #define AH4_AU2(x) AH4_AU2_x(AU2(x))
- #define AW2_AU1(x) AW2_AU1_x(AU1(x))
- #define AW4_AU2(x) AW4_AU2_x(AU2(x))
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AU1_AH2_x(AH2 x){return f32tof16(x.x)+(f32tof16(x.y)<<16);}
- AU2 AU2_AH4_x(AH4 x){return AU2(AU1_AH2_x(x.xy),AU1_AH2_x(x.zw));}
- AU1 AU1_AW2_x(AW2 x){return AU1(x.x)+(AU1(x.y)<<16);}
- AU2 AU2_AW4_x(AW4 x){return AU2(AU1_AW2_x(x.xy),AU1_AW2_x(x.zw));}
- #define AU1_AH2(x) AU1_AH2_x(AH2(x))
- #define AU2_AH4(x) AU2_AH4_x(AH4(x))
- #define AU1_AW2(x) AU1_AW2_x(AW2(x))
- #define AU2_AW4(x) AU2_AW4_x(AW4(x))
-//==============================================================================================================================
- #if defined(A_HLSL_6_2) && !defined(A_NO_16_BIT_CAST)
- #define AW1_AH1(x) asuint16(x)
- #define AW2_AH2(x) asuint16(x)
- #define AW3_AH3(x) asuint16(x)
- #define AW4_AH4(x) asuint16(x)
- #else
- #define AW1_AH1(a) AW1(f32tof16(AF1(a)))
- #define AW2_AH2(a) AW2(AW1_AH1((a).x),AW1_AH1((a).y))
- #define AW3_AH3(a) AW3(AW1_AH1((a).x),AW1_AH1((a).y),AW1_AH1((a).z))
- #define AW4_AH4(a) AW4(AW1_AH1((a).x),AW1_AH1((a).y),AW1_AH1((a).z),AW1_AH1((a).w))
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #if defined(A_HLSL_6_2) && !defined(A_NO_16_BIT_CAST)
- #define AH1_AW1(x) asfloat16(x)
- #define AH2_AW2(x) asfloat16(x)
- #define AH3_AW3(x) asfloat16(x)
- #define AH4_AW4(x) asfloat16(x)
- #else
- #define AH1_AW1(a) AH1(f16tof32(AU1(a)))
- #define AH2_AW2(a) AH2(AH1_AW1((a).x),AH1_AW1((a).y))
- #define AH3_AW3(a) AH3(AH1_AW1((a).x),AH1_AW1((a).y),AH1_AW1((a).z))
- #define AH4_AW4(a) AH4(AH1_AW1((a).x),AH1_AW1((a).y),AH1_AW1((a).z),AH1_AW1((a).w))
- #endif
-//==============================================================================================================================
- AH1 AH1_x(AH1 a){return AH1(a);}
- AH2 AH2_x(AH1 a){return AH2(a,a);}
- AH3 AH3_x(AH1 a){return AH3(a,a,a);}
- AH4 AH4_x(AH1 a){return AH4(a,a,a,a);}
- #define AH1_(a) AH1_x(AH1(a))
- #define AH2_(a) AH2_x(AH1(a))
- #define AH3_(a) AH3_x(AH1(a))
- #define AH4_(a) AH4_x(AH1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AW1_x(AW1 a){return AW1(a);}
- AW2 AW2_x(AW1 a){return AW2(a,a);}
- AW3 AW3_x(AW1 a){return AW3(a,a,a);}
- AW4 AW4_x(AW1 a){return AW4(a,a,a,a);}
- #define AW1_(a) AW1_x(AW1(a))
- #define AW2_(a) AW2_x(AW1(a))
- #define AW3_(a) AW3_x(AW1(a))
- #define AW4_(a) AW4_x(AW1(a))
-//==============================================================================================================================
- AW1 AAbsSW1(AW1 a){return AW1(abs(ASW1(a)));}
- AW2 AAbsSW2(AW2 a){return AW2(abs(ASW2(a)));}
- AW3 AAbsSW3(AW3 a){return AW3(abs(ASW3(a)));}
- AW4 AAbsSW4(AW4 a){return AW4(abs(ASW4(a)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AClampH1(AH1 x,AH1 n,AH1 m){return max(n,min(x,m));}
- AH2 AClampH2(AH2 x,AH2 n,AH2 m){return max(n,min(x,m));}
- AH3 AClampH3(AH3 x,AH3 n,AH3 m){return max(n,min(x,m));}
- AH4 AClampH4(AH4 x,AH4 n,AH4 m){return max(n,min(x,m));}
-//------------------------------------------------------------------------------------------------------------------------------
- // V_FRACT_F16 (note DX frac() is different).
- AH1 AFractH1(AH1 x){return x-floor(x);}
- AH2 AFractH2(AH2 x){return x-floor(x);}
- AH3 AFractH3(AH3 x){return x-floor(x);}
- AH4 AFractH4(AH4 x){return x-floor(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ALerpH1(AH1 x,AH1 y,AH1 a){return lerp(x,y,a);}
- AH2 ALerpH2(AH2 x,AH2 y,AH2 a){return lerp(x,y,a);}
- AH3 ALerpH3(AH3 x,AH3 y,AH3 a){return lerp(x,y,a);}
- AH4 ALerpH4(AH4 x,AH4 y,AH4 a){return lerp(x,y,a);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AMax3H1(AH1 x,AH1 y,AH1 z){return max(x,max(y,z));}
- AH2 AMax3H2(AH2 x,AH2 y,AH2 z){return max(x,max(y,z));}
- AH3 AMax3H3(AH3 x,AH3 y,AH3 z){return max(x,max(y,z));}
- AH4 AMax3H4(AH4 x,AH4 y,AH4 z){return max(x,max(y,z));}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AMaxSW1(AW1 a,AW1 b){return AW1(max(ASU1(a),ASU1(b)));}
- AW2 AMaxSW2(AW2 a,AW2 b){return AW2(max(ASU2(a),ASU2(b)));}
- AW3 AMaxSW3(AW3 a,AW3 b){return AW3(max(ASU3(a),ASU3(b)));}
- AW4 AMaxSW4(AW4 a,AW4 b){return AW4(max(ASU4(a),ASU4(b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AMin3H1(AH1 x,AH1 y,AH1 z){return min(x,min(y,z));}
- AH2 AMin3H2(AH2 x,AH2 y,AH2 z){return min(x,min(y,z));}
- AH3 AMin3H3(AH3 x,AH3 y,AH3 z){return min(x,min(y,z));}
- AH4 AMin3H4(AH4 x,AH4 y,AH4 z){return min(x,min(y,z));}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AMinSW1(AW1 a,AW1 b){return AW1(min(ASU1(a),ASU1(b)));}
- AW2 AMinSW2(AW2 a,AW2 b){return AW2(min(ASU2(a),ASU2(b)));}
- AW3 AMinSW3(AW3 a,AW3 b){return AW3(min(ASU3(a),ASU3(b)));}
- AW4 AMinSW4(AW4 a,AW4 b){return AW4(min(ASU4(a),ASU4(b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ARcpH1(AH1 x){return rcp(x);}
- AH2 ARcpH2(AH2 x){return rcp(x);}
- AH3 ARcpH3(AH3 x){return rcp(x);}
- AH4 ARcpH4(AH4 x){return rcp(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ARsqH1(AH1 x){return rsqrt(x);}
- AH2 ARsqH2(AH2 x){return rsqrt(x);}
- AH3 ARsqH3(AH3 x){return rsqrt(x);}
- AH4 ARsqH4(AH4 x){return rsqrt(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ASatH1(AH1 x){return saturate(x);}
- AH2 ASatH2(AH2 x){return saturate(x);}
- AH3 ASatH3(AH3 x){return saturate(x);}
- AH4 ASatH4(AH4 x){return saturate(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AShrSW1(AW1 a,AW1 b){return AW1(ASW1(a)>>ASW1(b));}
- AW2 AShrSW2(AW2 a,AW2 b){return AW2(ASW2(a)>>ASW2(b));}
- AW3 AShrSW3(AW3 a,AW3 b){return AW3(ASW3(a)>>ASW3(b));}
- AW4 AShrSW4(AW4 a,AW4 b){return AW4(ASW4(a)>>ASW4(b));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// HLSL DOUBLE
-//==============================================================================================================================
- #ifdef A_DUBL
- #ifdef A_HLSL_6_2
- #define AD1 float64_t
- #define AD2 float64_t2
- #define AD3 float64_t3
- #define AD4 float64_t4
- #else
- #define AD1 double
- #define AD2 double2
- #define AD3 double3
- #define AD4 double4
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 AD1_x(AD1 a){return AD1(a);}
- AD2 AD2_x(AD1 a){return AD2(a,a);}
- AD3 AD3_x(AD1 a){return AD3(a,a,a);}
- AD4 AD4_x(AD1 a){return AD4(a,a,a,a);}
- #define AD1_(a) AD1_x(AD1(a))
- #define AD2_(a) AD2_x(AD1(a))
- #define AD3_(a) AD3_x(AD1(a))
- #define AD4_(a) AD4_x(AD1(a))
-//==============================================================================================================================
- AD1 AFractD1(AD1 a){return a-floor(a);}
- AD2 AFractD2(AD2 a){return a-floor(a);}
- AD3 AFractD3(AD3 a){return a-floor(a);}
- AD4 AFractD4(AD4 a){return a-floor(a);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ALerpD1(AD1 x,AD1 y,AD1 a){return lerp(x,y,a);}
- AD2 ALerpD2(AD2 x,AD2 y,AD2 a){return lerp(x,y,a);}
- AD3 ALerpD3(AD3 x,AD3 y,AD3 a){return lerp(x,y,a);}
- AD4 ALerpD4(AD4 x,AD4 y,AD4 a){return lerp(x,y,a);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ARcpD1(AD1 x){return rcp(x);}
- AD2 ARcpD2(AD2 x){return rcp(x);}
- AD3 ARcpD3(AD3 x){return rcp(x);}
- AD4 ARcpD4(AD4 x){return rcp(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ARsqD1(AD1 x){return rsqrt(x);}
- AD2 ARsqD2(AD2 x){return rsqrt(x);}
- AD3 ARsqD3(AD3 x){return rsqrt(x);}
- AD4 ARsqD4(AD4 x){return rsqrt(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AD1 ASatD1(AD1 x){return saturate(x);}
- AD2 ASatD2(AD2 x){return saturate(x);}
- AD3 ASatD3(AD3 x){return saturate(x);}
- AD4 ASatD4(AD4 x){return saturate(x);}
- #endif
-//==============================================================================================================================
-// HLSL WAVE
-//==============================================================================================================================
- #ifdef A_WAVE
- // Where 'x' must be a compile time literal.
- AF1 AWaveXorF1(AF1 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AF2 AWaveXorF2(AF2 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AF3 AWaveXorF3(AF3 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AF4 AWaveXorF4(AF4 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AU1 AWaveXorU1(AU1 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AU2 AWaveXorU1(AU2 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AU3 AWaveXorU1(AU3 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
- AU4 AWaveXorU1(AU4 v,AU1 x){return WaveReadLaneAt(v,WaveGetLaneIndex()^x);}
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_HALF
- AH2 AWaveXorH2(AH2 v,AU1 x){return AH2_AU1(WaveReadLaneAt(AU1_AH2(v),WaveGetLaneIndex()^x));}
- AH4 AWaveXorH4(AH4 v,AU1 x){return AH4_AU2(WaveReadLaneAt(AU2_AH4(v),WaveGetLaneIndex()^x));}
- AW2 AWaveXorW2(AW2 v,AU1 x){return AW2_AU1(WaveReadLaneAt(AU1_AW2(v),WaveGetLaneIndex()^x));}
- AW4 AWaveXorW4(AW4 v,AU1 x){return AW4_AU1(WaveReadLaneAt(AU1_AW4(v),WaveGetLaneIndex()^x));}
- #endif
- #endif
-//==============================================================================================================================
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-//
-// GPU COMMON
-//
-//
-//==============================================================================================================================
-#ifdef A_GPU
- // Negative and positive infinity.
- #define A_INFP_F AF1_AU1(0x7f800000u)
- #define A_INFN_F AF1_AU1(0xff800000u)
-//------------------------------------------------------------------------------------------------------------------------------
- // Copy sign from 's' to positive 'd'.
- AF1 ACpySgnF1(AF1 d,AF1 s){return AF1_AU1(AU1_AF1(d)|(AU1_AF1(s)&AU1_(0x80000000u)));}
- AF2 ACpySgnF2(AF2 d,AF2 s){return AF2_AU2(AU2_AF2(d)|(AU2_AF2(s)&AU2_(0x80000000u)));}
- AF3 ACpySgnF3(AF3 d,AF3 s){return AF3_AU3(AU3_AF3(d)|(AU3_AF3(s)&AU3_(0x80000000u)));}
- AF4 ACpySgnF4(AF4 d,AF4 s){return AF4_AU4(AU4_AF4(d)|(AU4_AF4(s)&AU4_(0x80000000u)));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Single operation to return (useful to create a mask to use in lerp for branch free logic),
- // m=NaN := 0
- // m>=0 := 0
- // m<0 := 1
- // Uses the following useful floating point logic,
- // saturate(+a*(-INF)==-INF) := 0
- // saturate( 0*(-INF)== NaN) := 0
- // saturate(-a*(-INF)==+INF) := 1
- AF1 ASignedF1(AF1 m){return ASatF1(m*AF1_(A_INFN_F));}
- AF2 ASignedF2(AF2 m){return ASatF2(m*AF2_(A_INFN_F));}
- AF3 ASignedF3(AF3 m){return ASatF3(m*AF3_(A_INFN_F));}
- AF4 ASignedF4(AF4 m){return ASatF4(m*AF4_(A_INFN_F));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AGtZeroF1(AF1 m){return ASatF1(m*AF1_(A_INFP_F));}
- AF2 AGtZeroF2(AF2 m){return ASatF2(m*AF2_(A_INFP_F));}
- AF3 AGtZeroF3(AF3 m){return ASatF3(m*AF3_(A_INFP_F));}
- AF4 AGtZeroF4(AF4 m){return ASatF4(m*AF4_(A_INFP_F));}
-//==============================================================================================================================
- #ifdef A_HALF
- #ifdef A_HLSL_6_2
- #define A_INFP_H AH1_AW1((uint16_t)0x7c00u)
- #define A_INFN_H AH1_AW1((uint16_t)0xfc00u)
- #else
- #define A_INFP_H AH1_AW1(0x7c00u)
- #define A_INFN_H AH1_AW1(0xfc00u)
- #endif
-
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ACpySgnH1(AH1 d,AH1 s){return AH1_AW1(AW1_AH1(d)|(AW1_AH1(s)&AW1_(0x8000u)));}
- AH2 ACpySgnH2(AH2 d,AH2 s){return AH2_AW2(AW2_AH2(d)|(AW2_AH2(s)&AW2_(0x8000u)));}
- AH3 ACpySgnH3(AH3 d,AH3 s){return AH3_AW3(AW3_AH3(d)|(AW3_AH3(s)&AW3_(0x8000u)));}
- AH4 ACpySgnH4(AH4 d,AH4 s){return AH4_AW4(AW4_AH4(d)|(AW4_AH4(s)&AW4_(0x8000u)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ASignedH1(AH1 m){return ASatH1(m*AH1_(A_INFN_H));}
- AH2 ASignedH2(AH2 m){return ASatH2(m*AH2_(A_INFN_H));}
- AH3 ASignedH3(AH3 m){return ASatH3(m*AH3_(A_INFN_H));}
- AH4 ASignedH4(AH4 m){return ASatH4(m*AH4_(A_INFN_H));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AGtZeroH1(AH1 m){return ASatH1(m*AH1_(A_INFP_H));}
- AH2 AGtZeroH2(AH2 m){return ASatH2(m*AH2_(A_INFP_H));}
- AH3 AGtZeroH3(AH3 m){return ASatH3(m*AH3_(A_INFP_H));}
- AH4 AGtZeroH4(AH4 m){return ASatH4(m*AH4_(A_INFP_H));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// [FIS] FLOAT INTEGER SORTABLE
-//------------------------------------------------------------------------------------------------------------------------------
-// Float to integer sortable.
-// - If sign bit=0, flip the sign bit (positives).
-// - If sign bit=1, flip all bits (negatives).
-// Integer sortable to float.
-// - If sign bit=1, flip the sign bit (positives).
-// - If sign bit=0, flip all bits (negatives).
-// Has nice side effects.
-// - Larger integers are more positive values.
-// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage).
-// Burns 3 ops for conversion {shift,or,xor}.
-//==============================================================================================================================
- AU1 AFisToU1(AU1 x){return x^(( AShrSU1(x,AU1_(31)))|AU1_(0x80000000));}
- AU1 AFisFromU1(AU1 x){return x^((~AShrSU1(x,AU1_(31)))|AU1_(0x80000000));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Just adjust high 16-bit value (useful when upper part of 32-bit word is a 16-bit float value).
- AU1 AFisToHiU1(AU1 x){return x^(( AShrSU1(x,AU1_(15)))|AU1_(0x80000000));}
- AU1 AFisFromHiU1(AU1 x){return x^((~AShrSU1(x,AU1_(15)))|AU1_(0x80000000));}
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_HALF
- AW1 AFisToW1(AW1 x){return x^(( AShrSW1(x,AW1_(15)))|AW1_(0x8000));}
- AW1 AFisFromW1(AW1 x){return x^((~AShrSW1(x,AW1_(15)))|AW1_(0x8000));}
-//------------------------------------------------------------------------------------------------------------------------------
- AW2 AFisToW2(AW2 x){return x^(( AShrSW2(x,AW2_(15)))|AW2_(0x8000));}
- AW2 AFisFromW2(AW2 x){return x^((~AShrSW2(x,AW2_(15)))|AW2_(0x8000));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// [PERM] V_PERM_B32
-//------------------------------------------------------------------------------------------------------------------------------
-// Support for V_PERM_B32 started in the 3rd generation of GCN.
-//------------------------------------------------------------------------------------------------------------------------------
-// yyyyxxxx - The 'i' input.
-// 76543210
-// ========
-// HGFEDCBA - Naming on permutation.
-//------------------------------------------------------------------------------------------------------------------------------
-// TODO
-// ====
-// - Make sure compiler optimizes this.
-//==============================================================================================================================
- #ifdef A_HALF
- AU1 APerm0E0A(AU2 i){return((i.x )&0xffu)|((i.y<<16)&0xff0000u);}
- AU1 APerm0F0B(AU2 i){return((i.x>> 8)&0xffu)|((i.y<< 8)&0xff0000u);}
- AU1 APerm0G0C(AU2 i){return((i.x>>16)&0xffu)|((i.y )&0xff0000u);}
- AU1 APerm0H0D(AU2 i){return((i.x>>24)&0xffu)|((i.y>> 8)&0xff0000u);}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 APermHGFA(AU2 i){return((i.x )&0x000000ffu)|(i.y&0xffffff00u);}
- AU1 APermHGFC(AU2 i){return((i.x>>16)&0x000000ffu)|(i.y&0xffffff00u);}
- AU1 APermHGAE(AU2 i){return((i.x<< 8)&0x0000ff00u)|(i.y&0xffff00ffu);}
- AU1 APermHGCE(AU2 i){return((i.x>> 8)&0x0000ff00u)|(i.y&0xffff00ffu);}
- AU1 APermHAFE(AU2 i){return((i.x<<16)&0x00ff0000u)|(i.y&0xff00ffffu);}
- AU1 APermHCFE(AU2 i){return((i.x )&0x00ff0000u)|(i.y&0xff00ffffu);}
- AU1 APermAGFE(AU2 i){return((i.x<<24)&0xff000000u)|(i.y&0x00ffffffu);}
- AU1 APermCGFE(AU2 i){return((i.x<< 8)&0xff000000u)|(i.y&0x00ffffffu);}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 APermGCEA(AU2 i){return((i.x)&0x00ff00ffu)|((i.y<<8)&0xff00ff00u);}
- AU1 APermGECA(AU2 i){return(((i.x)&0xffu)|((i.x>>8)&0xff00u)|((i.y<<16)&0xff0000u)|((i.y<<8)&0xff000000u));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// [BUC] BYTE UNSIGNED CONVERSION
-//------------------------------------------------------------------------------------------------------------------------------
-// Designed to use the optimal conversion, enables the scaling to possibly be factored into other computation.
-// Works on a range of {0 to A_BUC_<32,16>}, for <32-bit, and 16-bit> respectively.
-//------------------------------------------------------------------------------------------------------------------------------
-// OPCODE NOTES
-// ============
-// GCN does not do UNORM or SNORM for bytes in opcodes.
-// - V_CVT_F32_UBYTE{0,1,2,3} - Unsigned byte to float.
-// - V_CVT_PKACC_U8_F32 - Float to unsigned byte (does bit-field insert into 32-bit integer).
-// V_PERM_B32 does byte packing with ability to zero fill bytes as well.
-// - Can pull out byte values from two sources, and zero fill upper 8-bits of packed hi and lo.
-//------------------------------------------------------------------------------------------------------------------------------
-// BYTE : FLOAT - ABuc{0,1,2,3}{To,From}U1() - Designed for V_CVT_F32_UBYTE* and V_CVT_PKACCUM_U8_F32 ops.
-// ==== =====
-// 0 : 0
-// 1 : 1
-// ...
-// 255 : 255
-// : 256 (just outside the encoding range)
-//------------------------------------------------------------------------------------------------------------------------------
-// BYTE : FLOAT - ABuc{0,1,2,3}{To,From}U2() - Designed for 16-bit denormal tricks and V_PERM_B32.
-// ==== =====
-// 0 : 0
-// 1 : 1/512
-// 2 : 1/256
-// ...
-// 64 : 1/8
-// 128 : 1/4
-// 255 : 255/512
-// : 1/2 (just outside the encoding range)
-//------------------------------------------------------------------------------------------------------------------------------
-// OPTIMAL IMPLEMENTATIONS ON AMD ARCHITECTURES
-// ============================================
-// r=ABuc0FromU1(i)
-// V_CVT_F32_UBYTE0 r,i
-// --------------------------------------------
-// r=ABuc0ToU1(d,i)
-// V_CVT_PKACCUM_U8_F32 r,i,0,d
-// --------------------------------------------
-// d=ABuc0FromU2(i)
-// Where 'k0' is an SGPR with 0x0E0A
-// Where 'k1' is an SGPR with {32768.0} packed into the lower 16-bits
-// V_PERM_B32 d,i.x,i.y,k0
-// V_PK_FMA_F16 d,d,k1.x,0
-// --------------------------------------------
-// r=ABuc0ToU2(d,i)
-// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits
-// Where 'k1' is an SGPR with 0x????
-// Where 'k2' is an SGPR with 0x????
-// V_PK_FMA_F16 i,i,k0.x,0
-// V_PERM_B32 r.x,i,i,k1
-// V_PERM_B32 r.y,i,i,k2
-//==============================================================================================================================
- // Peak range for 32-bit and 16-bit operations.
- #define A_BUC_32 (255.0)
- #define A_BUC_16 (255.0/512.0)
-//==============================================================================================================================
- #if 1
- // Designed to be one V_CVT_PKACCUM_U8_F32.
- // The extra min is required to pattern match to V_CVT_PKACCUM_U8_F32.
- AU1 ABuc0ToU1(AU1 d,AF1 i){return (d&0xffffff00u)|((min(AU1(i),255u) )&(0x000000ffu));}
- AU1 ABuc1ToU1(AU1 d,AF1 i){return (d&0xffff00ffu)|((min(AU1(i),255u)<< 8)&(0x0000ff00u));}
- AU1 ABuc2ToU1(AU1 d,AF1 i){return (d&0xff00ffffu)|((min(AU1(i),255u)<<16)&(0x00ff0000u));}
- AU1 ABuc3ToU1(AU1 d,AF1 i){return (d&0x00ffffffu)|((min(AU1(i),255u)<<24)&(0xff000000u));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Designed to be one V_CVT_F32_UBYTE*.
- AF1 ABuc0FromU1(AU1 i){return AF1((i )&255u);}
- AF1 ABuc1FromU1(AU1 i){return AF1((i>> 8)&255u);}
- AF1 ABuc2FromU1(AU1 i){return AF1((i>>16)&255u);}
- AF1 ABuc3FromU1(AU1 i){return AF1((i>>24)&255u);}
- #endif
-//==============================================================================================================================
- #ifdef A_HALF
- // Takes {x0,x1} and {y0,y1} and builds {{x0,y0},{x1,y1}}.
- AW2 ABuc01ToW2(AH2 x,AH2 y){x*=AH2_(1.0/32768.0);y*=AH2_(1.0/32768.0);
- return AW2_AU1(APermGCEA(AU2(AU1_AW2(AW2_AH2(x)),AU1_AW2(AW2_AH2(y)))));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Designed for 3 ops to do SOA to AOS and conversion.
- AU2 ABuc0ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)));
- return AU2(APermHGFA(AU2(d.x,b)),APermHGFC(AU2(d.y,b)));}
- AU2 ABuc1ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)));
- return AU2(APermHGAE(AU2(d.x,b)),APermHGCE(AU2(d.y,b)));}
- AU2 ABuc2ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)));
- return AU2(APermHAFE(AU2(d.x,b)),APermHCFE(AU2(d.y,b)));}
- AU2 ABuc3ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)));
- return AU2(APermAGFE(AU2(d.x,b)),APermCGFE(AU2(d.y,b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Designed for 2 ops to do both AOS to SOA, and conversion.
- AH2 ABuc0FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0E0A(i)))*AH2_(32768.0);}
- AH2 ABuc1FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0F0B(i)))*AH2_(32768.0);}
- AH2 ABuc2FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0G0C(i)))*AH2_(32768.0);}
- AH2 ABuc3FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0H0D(i)))*AH2_(32768.0);}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// [BSC] BYTE SIGNED CONVERSION
-//------------------------------------------------------------------------------------------------------------------------------
-// Similar to [BUC].
-// Works on a range of {-/+ A_BSC_<32,16>}, for <32-bit, and 16-bit> respectively.
-//------------------------------------------------------------------------------------------------------------------------------
-// ENCODING (without zero-based encoding)
-// ========
-// 0 = unused (can be used to mean something else)
-// 1 = lowest value
-// 128 = exact zero center (zero based encoding
-// 255 = highest value
-//------------------------------------------------------------------------------------------------------------------------------
-// Zero-based [Zb] flips the MSB bit of the byte (making 128 "exact zero" actually zero).
-// This is useful if there is a desire for cleared values to decode as zero.
-//------------------------------------------------------------------------------------------------------------------------------
-// BYTE : FLOAT - ABsc{0,1,2,3}{To,From}U2() - Designed for 16-bit denormal tricks and V_PERM_B32.
-// ==== =====
-// 0 : -127/512 (unused)
-// 1 : -126/512
-// 2 : -125/512
-// ...
-// 128 : 0
-// ...
-// 255 : 127/512
-// : 1/4 (just outside the encoding range)
-//==============================================================================================================================
- // Peak range for 32-bit and 16-bit operations.
- #define A_BSC_32 (127.0)
- #define A_BSC_16 (127.0/512.0)
-//==============================================================================================================================
- #if 1
- AU1 ABsc0ToU1(AU1 d,AF1 i){return (d&0xffffff00u)|((min(AU1(i+128.0),255u) )&(0x000000ffu));}
- AU1 ABsc1ToU1(AU1 d,AF1 i){return (d&0xffff00ffu)|((min(AU1(i+128.0),255u)<< 8)&(0x0000ff00u));}
- AU1 ABsc2ToU1(AU1 d,AF1 i){return (d&0xff00ffffu)|((min(AU1(i+128.0),255u)<<16)&(0x00ff0000u));}
- AU1 ABsc3ToU1(AU1 d,AF1 i){return (d&0x00ffffffu)|((min(AU1(i+128.0),255u)<<24)&(0xff000000u));}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 ABsc0ToZbU1(AU1 d,AF1 i){return ((d&0xffffff00u)|((min(AU1(trunc(i)+128.0),255u) )&(0x000000ffu)))^0x00000080u;}
- AU1 ABsc1ToZbU1(AU1 d,AF1 i){return ((d&0xffff00ffu)|((min(AU1(trunc(i)+128.0),255u)<< 8)&(0x0000ff00u)))^0x00008000u;}
- AU1 ABsc2ToZbU1(AU1 d,AF1 i){return ((d&0xff00ffffu)|((min(AU1(trunc(i)+128.0),255u)<<16)&(0x00ff0000u)))^0x00800000u;}
- AU1 ABsc3ToZbU1(AU1 d,AF1 i){return ((d&0x00ffffffu)|((min(AU1(trunc(i)+128.0),255u)<<24)&(0xff000000u)))^0x80000000u;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 ABsc0FromU1(AU1 i){return AF1((i )&255u)-128.0;}
- AF1 ABsc1FromU1(AU1 i){return AF1((i>> 8)&255u)-128.0;}
- AF1 ABsc2FromU1(AU1 i){return AF1((i>>16)&255u)-128.0;}
- AF1 ABsc3FromU1(AU1 i){return AF1((i>>24)&255u)-128.0;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 ABsc0FromZbU1(AU1 i){return AF1(((i )&255u)^0x80u)-128.0;}
- AF1 ABsc1FromZbU1(AU1 i){return AF1(((i>> 8)&255u)^0x80u)-128.0;}
- AF1 ABsc2FromZbU1(AU1 i){return AF1(((i>>16)&255u)^0x80u)-128.0;}
- AF1 ABsc3FromZbU1(AU1 i){return AF1(((i>>24)&255u)^0x80u)-128.0;}
- #endif
-//==============================================================================================================================
- #ifdef A_HALF
- // Takes {x0,x1} and {y0,y1} and builds {{x0,y0},{x1,y1}}.
- AW2 ABsc01ToW2(AH2 x,AH2 y){x=x*AH2_(1.0/32768.0)+AH2_(0.25/32768.0);y=y*AH2_(1.0/32768.0)+AH2_(0.25/32768.0);
- return AW2_AU1(APermGCEA(AU2(AU1_AW2(AW2_AH2(x)),AU1_AW2(AW2_AH2(y)))));}
-//------------------------------------------------------------------------------------------------------------------------------
- AU2 ABsc0ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)));
- return AU2(APermHGFA(AU2(d.x,b)),APermHGFC(AU2(d.y,b)));}
- AU2 ABsc1ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)));
- return AU2(APermHGAE(AU2(d.x,b)),APermHGCE(AU2(d.y,b)));}
- AU2 ABsc2ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)));
- return AU2(APermHAFE(AU2(d.x,b)),APermHCFE(AU2(d.y,b)));}
- AU2 ABsc3ToU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)));
- return AU2(APermAGFE(AU2(d.x,b)),APermCGFE(AU2(d.y,b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AU2 ABsc0ToZbU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)))^0x00800080u;
- return AU2(APermHGFA(AU2(d.x,b)),APermHGFC(AU2(d.y,b)));}
- AU2 ABsc1ToZbU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)))^0x00800080u;
- return AU2(APermHGAE(AU2(d.x,b)),APermHGCE(AU2(d.y,b)));}
- AU2 ABsc2ToZbU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)))^0x00800080u;
- return AU2(APermHAFE(AU2(d.x,b)),APermHCFE(AU2(d.y,b)));}
- AU2 ABsc3ToZbU2(AU2 d,AH2 i){AU1 b=AU1_AW2(AW2_AH2(i*AH2_(1.0/32768.0)+AH2_(0.25/32768.0)))^0x00800080u;
- return AU2(APermAGFE(AU2(d.x,b)),APermCGFE(AU2(d.y,b)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH2 ABsc0FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0E0A(i)))*AH2_(32768.0)-AH2_(0.25);}
- AH2 ABsc1FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0F0B(i)))*AH2_(32768.0)-AH2_(0.25);}
- AH2 ABsc2FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0G0C(i)))*AH2_(32768.0)-AH2_(0.25);}
- AH2 ABsc3FromU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0H0D(i)))*AH2_(32768.0)-AH2_(0.25);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH2 ABsc0FromZbU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0E0A(i)^0x00800080u))*AH2_(32768.0)-AH2_(0.25);}
- AH2 ABsc1FromZbU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0F0B(i)^0x00800080u))*AH2_(32768.0)-AH2_(0.25);}
- AH2 ABsc2FromZbU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0G0C(i)^0x00800080u))*AH2_(32768.0)-AH2_(0.25);}
- AH2 ABsc3FromZbU2(AU2 i){return AH2_AW2(AW2_AU1(APerm0H0D(i)^0x00800080u))*AH2_(32768.0)-AH2_(0.25);}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// HALF APPROXIMATIONS
-//------------------------------------------------------------------------------------------------------------------------------
-// These support only positive inputs.
-// Did not see value yet in specialization for range.
-// Using quick testing, ended up mostly getting the same "best" approximation for various ranges.
-// With hardware that can co-execute transcendentals, the value in approximations could be less than expected.
-// However from a latency perspective, if execution of a transcendental is 4 clk, with no packed support, -> 8 clk total.
-// And co-execution would require a compiler interleaving a lot of independent work for packed usage.
-//------------------------------------------------------------------------------------------------------------------------------
-// The one Newton Raphson iteration form of rsq() was skipped (requires 6 ops total).
-// Same with sqrt(), as this could be x*rsq() (7 ops).
-//==============================================================================================================================
- #ifdef A_HALF
- // Minimize squared error across full positive range, 2 ops.
- // The 0x1de2 based approximation maps {0 to 1} input maps to < 1 output.
- AH1 APrxLoSqrtH1(AH1 a){return AH1_AW1((AW1_AH1(a)>>AW1_(1))+AW1_(0x1de2));}
- AH2 APrxLoSqrtH2(AH2 a){return AH2_AW2((AW2_AH2(a)>>AW2_(1))+AW2_(0x1de2));}
- AH3 APrxLoSqrtH3(AH3 a){return AH3_AW3((AW3_AH3(a)>>AW3_(1))+AW3_(0x1de2));}
- AH4 APrxLoSqrtH4(AH4 a){return AH4_AW4((AW4_AH4(a)>>AW4_(1))+AW4_(0x1de2));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Lower precision estimation, 1 op.
- // Minimize squared error across {smallest normal to 16384.0}.
- AH1 APrxLoRcpH1(AH1 a){return AH1_AW1(AW1_(0x7784)-AW1_AH1(a));}
- AH2 APrxLoRcpH2(AH2 a){return AH2_AW2(AW2_(0x7784)-AW2_AH2(a));}
- AH3 APrxLoRcpH3(AH3 a){return AH3_AW3(AW3_(0x7784)-AW3_AH3(a));}
- AH4 APrxLoRcpH4(AH4 a){return AH4_AW4(AW4_(0x7784)-AW4_AH4(a));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Medium precision estimation, one Newton Raphson iteration, 3 ops.
- AH1 APrxMedRcpH1(AH1 a){AH1 b=AH1_AW1(AW1_(0x778d)-AW1_AH1(a));return b*(-b*a+AH1_(2.0));}
- AH2 APrxMedRcpH2(AH2 a){AH2 b=AH2_AW2(AW2_(0x778d)-AW2_AH2(a));return b*(-b*a+AH2_(2.0));}
- AH3 APrxMedRcpH3(AH3 a){AH3 b=AH3_AW3(AW3_(0x778d)-AW3_AH3(a));return b*(-b*a+AH3_(2.0));}
- AH4 APrxMedRcpH4(AH4 a){AH4 b=AH4_AW4(AW4_(0x778d)-AW4_AH4(a));return b*(-b*a+AH4_(2.0));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Minimize squared error across {smallest normal to 16384.0}, 2 ops.
- AH1 APrxLoRsqH1(AH1 a){return AH1_AW1(AW1_(0x59a3)-(AW1_AH1(a)>>AW1_(1)));}
- AH2 APrxLoRsqH2(AH2 a){return AH2_AW2(AW2_(0x59a3)-(AW2_AH2(a)>>AW2_(1)));}
- AH3 APrxLoRsqH3(AH3 a){return AH3_AW3(AW3_(0x59a3)-(AW3_AH3(a)>>AW3_(1)));}
- AH4 APrxLoRsqH4(AH4 a){return AH4_AW4(AW4_(0x59a3)-(AW4_AH4(a)>>AW4_(1)));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// FLOAT APPROXIMATIONS
-//------------------------------------------------------------------------------------------------------------------------------
-// Michal Drobot has an excellent presentation on these: "Low Level Optimizations For GCN",
-// - Idea dates back to SGI, then to Quake 3, etc.
-// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf
-// - sqrt(x)=rsqrt(x)*x
-// - rcp(x)=rsqrt(x)*rsqrt(x) for positive x
-// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h
-//------------------------------------------------------------------------------------------------------------------------------
-// These below are from perhaps less complete searching for optimal.
-// Used FP16 normal range for testing with +4096 32-bit step size for sampling error.
-// So these match up well with the half approximations.
-//==============================================================================================================================
- AF1 APrxLoSqrtF1(AF1 a){return AF1_AU1((AU1_AF1(a)>>AU1_(1))+AU1_(0x1fbc4639));}
- AF1 APrxLoRcpF1(AF1 a){return AF1_AU1(AU1_(0x7ef07ebb)-AU1_AF1(a));}
- AF1 APrxMedRcpF1(AF1 a){AF1 b=AF1_AU1(AU1_(0x7ef19fff)-AU1_AF1(a));return b*(-b*a+AF1_(2.0));}
- AF1 APrxLoRsqF1(AF1 a){return AF1_AU1(AU1_(0x5f347d74)-(AU1_AF1(a)>>AU1_(1)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 APrxLoSqrtF2(AF2 a){return AF2_AU2((AU2_AF2(a)>>AU2_(1))+AU2_(0x1fbc4639));}
- AF2 APrxLoRcpF2(AF2 a){return AF2_AU2(AU2_(0x7ef07ebb)-AU2_AF2(a));}
- AF2 APrxMedRcpF2(AF2 a){AF2 b=AF2_AU2(AU2_(0x7ef19fff)-AU2_AF2(a));return b*(-b*a+AF2_(2.0));}
- AF2 APrxLoRsqF2(AF2 a){return AF2_AU2(AU2_(0x5f347d74)-(AU2_AF2(a)>>AU2_(1)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF3 APrxLoSqrtF3(AF3 a){return AF3_AU3((AU3_AF3(a)>>AU3_(1))+AU3_(0x1fbc4639));}
- AF3 APrxLoRcpF3(AF3 a){return AF3_AU3(AU3_(0x7ef07ebb)-AU3_AF3(a));}
- AF3 APrxMedRcpF3(AF3 a){AF3 b=AF3_AU3(AU3_(0x7ef19fff)-AU3_AF3(a));return b*(-b*a+AF3_(2.0));}
- AF3 APrxLoRsqF3(AF3 a){return AF3_AU3(AU3_(0x5f347d74)-(AU3_AF3(a)>>AU3_(1)));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF4 APrxLoSqrtF4(AF4 a){return AF4_AU4((AU4_AF4(a)>>AU4_(1))+AU4_(0x1fbc4639));}
- AF4 APrxLoRcpF4(AF4 a){return AF4_AU4(AU4_(0x7ef07ebb)-AU4_AF4(a));}
- AF4 APrxMedRcpF4(AF4 a){AF4 b=AF4_AU4(AU4_(0x7ef19fff)-AU4_AF4(a));return b*(-b*a+AF4_(2.0));}
- AF4 APrxLoRsqF4(AF4 a){return AF4_AU4(AU4_(0x5f347d74)-(AU4_AF4(a)>>AU4_(1)));}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// PQ APPROXIMATIONS
-//------------------------------------------------------------------------------------------------------------------------------
-// PQ is very close to x^(1/8). The functions below Use the fast float approximation method to do
-// PQ<~>Gamma2 (4th power and fast 4th root) and PQ<~>Linear (8th power and fast 8th root). Maximum error is ~0.2%.
-//==============================================================================================================================
-// Helpers
- AF1 Quart(AF1 a) { a = a * a; return a * a;}
- AF1 Oct(AF1 a) { a = a * a; a = a * a; return a * a; }
- AF2 Quart(AF2 a) { a = a * a; return a * a; }
- AF2 Oct(AF2 a) { a = a * a; a = a * a; return a * a; }
- AF3 Quart(AF3 a) { a = a * a; return a * a; }
- AF3 Oct(AF3 a) { a = a * a; a = a * a; return a * a; }
- AF4 Quart(AF4 a) { a = a * a; return a * a; }
- AF4 Oct(AF4 a) { a = a * a; a = a * a; return a * a; }
- //------------------------------------------------------------------------------------------------------------------------------
- AF1 APrxPQToGamma2(AF1 a) { return Quart(a); }
- AF1 APrxPQToLinear(AF1 a) { return Oct(a); }
- AF1 APrxLoGamma2ToPQ(AF1 a) { return AF1_AU1((AU1_AF1(a) >> AU1_(2)) + AU1_(0x2F9A4E46)); }
- AF1 APrxMedGamma2ToPQ(AF1 a) { AF1 b = AF1_AU1((AU1_AF1(a) >> AU1_(2)) + AU1_(0x2F9A4E46)); AF1 b4 = Quart(b); return b - b * (b4 - a) / (AF1_(4.0) * b4); }
- AF1 APrxHighGamma2ToPQ(AF1 a) { return sqrt(sqrt(a)); }
- AF1 APrxLoLinearToPQ(AF1 a) { return AF1_AU1((AU1_AF1(a) >> AU1_(3)) + AU1_(0x378D8723)); }
- AF1 APrxMedLinearToPQ(AF1 a) { AF1 b = AF1_AU1((AU1_AF1(a) >> AU1_(3)) + AU1_(0x378D8723)); AF1 b8 = Oct(b); return b - b * (b8 - a) / (AF1_(8.0) * b8); }
- AF1 APrxHighLinearToPQ(AF1 a) { return sqrt(sqrt(sqrt(a))); }
- //------------------------------------------------------------------------------------------------------------------------------
- AF2 APrxPQToGamma2(AF2 a) { return Quart(a); }
- AF2 APrxPQToLinear(AF2 a) { return Oct(a); }
- AF2 APrxLoGamma2ToPQ(AF2 a) { return AF2_AU2((AU2_AF2(a) >> AU2_(2)) + AU2_(0x2F9A4E46)); }
- AF2 APrxMedGamma2ToPQ(AF2 a) { AF2 b = AF2_AU2((AU2_AF2(a) >> AU2_(2)) + AU2_(0x2F9A4E46)); AF2 b4 = Quart(b); return b - b * (b4 - a) / (AF1_(4.0) * b4); }
- AF2 APrxHighGamma2ToPQ(AF2 a) { return sqrt(sqrt(a)); }
- AF2 APrxLoLinearToPQ(AF2 a) { return AF2_AU2((AU2_AF2(a) >> AU2_(3)) + AU2_(0x378D8723)); }
- AF2 APrxMedLinearToPQ(AF2 a) { AF2 b = AF2_AU2((AU2_AF2(a) >> AU2_(3)) + AU2_(0x378D8723)); AF2 b8 = Oct(b); return b - b * (b8 - a) / (AF1_(8.0) * b8); }
- AF2 APrxHighLinearToPQ(AF2 a) { return sqrt(sqrt(sqrt(a))); }
- //------------------------------------------------------------------------------------------------------------------------------
- AF3 APrxPQToGamma2(AF3 a) { return Quart(a); }
- AF3 APrxPQToLinear(AF3 a) { return Oct(a); }
- AF3 APrxLoGamma2ToPQ(AF3 a) { return AF3_AU3((AU3_AF3(a) >> AU3_(2)) + AU3_(0x2F9A4E46)); }
- AF3 APrxMedGamma2ToPQ(AF3 a) { AF3 b = AF3_AU3((AU3_AF3(a) >> AU3_(2)) + AU3_(0x2F9A4E46)); AF3 b4 = Quart(b); return b - b * (b4 - a) / (AF1_(4.0) * b4); }
- AF3 APrxHighGamma2ToPQ(AF3 a) { return sqrt(sqrt(a)); }
- AF3 APrxLoLinearToPQ(AF3 a) { return AF3_AU3((AU3_AF3(a) >> AU3_(3)) + AU3_(0x378D8723)); }
- AF3 APrxMedLinearToPQ(AF3 a) { AF3 b = AF3_AU3((AU3_AF3(a) >> AU3_(3)) + AU3_(0x378D8723)); AF3 b8 = Oct(b); return b - b * (b8 - a) / (AF1_(8.0) * b8); }
- AF3 APrxHighLinearToPQ(AF3 a) { return sqrt(sqrt(sqrt(a))); }
- //------------------------------------------------------------------------------------------------------------------------------
- AF4 APrxPQToGamma2(AF4 a) { return Quart(a); }
- AF4 APrxPQToLinear(AF4 a) { return Oct(a); }
- AF4 APrxLoGamma2ToPQ(AF4 a) { return AF4_AU4((AU4_AF4(a) >> AU4_(2)) + AU4_(0x2F9A4E46)); }
- AF4 APrxMedGamma2ToPQ(AF4 a) { AF4 b = AF4_AU4((AU4_AF4(a) >> AU4_(2)) + AU4_(0x2F9A4E46)); AF4 b4 = Quart(b); return b - b * (b4 - a) / (AF1_(4.0) * b4); }
- AF4 APrxHighGamma2ToPQ(AF4 a) { return sqrt(sqrt(a)); }
- AF4 APrxLoLinearToPQ(AF4 a) { return AF4_AU4((AU4_AF4(a) >> AU4_(3)) + AU4_(0x378D8723)); }
- AF4 APrxMedLinearToPQ(AF4 a) { AF4 b = AF4_AU4((AU4_AF4(a) >> AU4_(3)) + AU4_(0x378D8723)); AF4 b8 = Oct(b); return b - b * (b8 - a) / (AF1_(8.0) * b8); }
- AF4 APrxHighLinearToPQ(AF4 a) { return sqrt(sqrt(sqrt(a))); }
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// PARABOLIC SIN & COS
-//------------------------------------------------------------------------------------------------------------------------------
-// Approximate answers to transcendental questions.
-//------------------------------------------------------------------------------------------------------------------------------
-//==============================================================================================================================
- #if 1
- // Valid input range is {-1 to 1} representing {0 to 2 pi}.
- // Output range is {-1/4 to 1/4} representing {-1 to 1}.
- AF1 APSinF1(AF1 x){return x*abs(x)-x;} // MAD.
- AF2 APSinF2(AF2 x){return x*abs(x)-x;}
- AF1 APCosF1(AF1 x){x=AFractF1(x*AF1_(0.5)+AF1_(0.75));x=x*AF1_(2.0)-AF1_(1.0);return APSinF1(x);} // 3x MAD, FRACT
- AF2 APCosF2(AF2 x){x=AFractF2(x*AF2_(0.5)+AF2_(0.75));x=x*AF2_(2.0)-AF2_(1.0);return APSinF2(x);}
- AF2 APSinCosF1(AF1 x){AF1 y=AFractF1(x*AF1_(0.5)+AF1_(0.75));y=y*AF1_(2.0)-AF1_(1.0);return APSinF2(AF2(x,y));}
- #endif
-//------------------------------------------------------------------------------------------------------------------------------
- #ifdef A_HALF
- // For a packed {sin,cos} pair,
- // - Native takes 16 clocks and 4 issue slots (no packed transcendentals).
- // - Parabolic takes 8 clocks and 8 issue slots (only fract is non-packed).
- AH1 APSinH1(AH1 x){return x*abs(x)-x;}
- AH2 APSinH2(AH2 x){return x*abs(x)-x;} // AND,FMA
- AH1 APCosH1(AH1 x){x=AFractH1(x*AH1_(0.5)+AH1_(0.75));x=x*AH1_(2.0)-AH1_(1.0);return APSinH1(x);}
- AH2 APCosH2(AH2 x){x=AFractH2(x*AH2_(0.5)+AH2_(0.75));x=x*AH2_(2.0)-AH2_(1.0);return APSinH2(x);} // 3x FMA, 2xFRACT, AND
- AH2 APSinCosH1(AH1 x){AH1 y=AFractH1(x*AH1_(0.5)+AH1_(0.75));y=y*AH1_(2.0)-AH1_(1.0);return APSinH2(AH2(x,y));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// [ZOL] ZERO ONE LOGIC
-//------------------------------------------------------------------------------------------------------------------------------
-// Conditional free logic designed for easy 16-bit packing, and backwards porting to 32-bit.
-//------------------------------------------------------------------------------------------------------------------------------
-// 0 := false
-// 1 := true
-//------------------------------------------------------------------------------------------------------------------------------
-// AndNot(x,y) -> !(x&y) .... One op.
-// AndOr(x,y,z) -> (x&y)|z ... One op.
-// GtZero(x) -> x>0.0 ..... One op.
-// Sel(x,y,z) -> x?y:z ..... Two ops, has no precision loss.
-// Signed(x) -> x<0.0 ..... One op.
-// ZeroPass(x,y) -> x?0:y ..... Two ops, 'y' is a pass through safe for aliasing as integer.
-//------------------------------------------------------------------------------------------------------------------------------
-// OPTIMIZATION NOTES
-// ==================
-// - On Vega to use 2 constants in a packed op, pass in as one AW2 or one AH2 'k.xy' and use as 'k.xx' and 'k.yy'.
-// For example 'a.xy*k.xx+k.yy'.
-//==============================================================================================================================
- #if 1
- AU1 AZolAndU1(AU1 x,AU1 y){return min(x,y);}
- AU2 AZolAndU2(AU2 x,AU2 y){return min(x,y);}
- AU3 AZolAndU3(AU3 x,AU3 y){return min(x,y);}
- AU4 AZolAndU4(AU4 x,AU4 y){return min(x,y);}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AZolNotU1(AU1 x){return x^AU1_(1);}
- AU2 AZolNotU2(AU2 x){return x^AU2_(1);}
- AU3 AZolNotU3(AU3 x){return x^AU3_(1);}
- AU4 AZolNotU4(AU4 x){return x^AU4_(1);}
-//------------------------------------------------------------------------------------------------------------------------------
- AU1 AZolOrU1(AU1 x,AU1 y){return max(x,y);}
- AU2 AZolOrU2(AU2 x,AU2 y){return max(x,y);}
- AU3 AZolOrU3(AU3 x,AU3 y){return max(x,y);}
- AU4 AZolOrU4(AU4 x,AU4 y){return max(x,y);}
-//==============================================================================================================================
- AU1 AZolF1ToU1(AF1 x){return AU1(x);}
- AU2 AZolF2ToU2(AF2 x){return AU2(x);}
- AU3 AZolF3ToU3(AF3 x){return AU3(x);}
- AU4 AZolF4ToU4(AF4 x){return AU4(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- // 2 ops, denormals don't work in 32-bit on PC (and if they are enabled, OMOD is disabled).
- AU1 AZolNotF1ToU1(AF1 x){return AU1(AF1_(1.0)-x);}
- AU2 AZolNotF2ToU2(AF2 x){return AU2(AF2_(1.0)-x);}
- AU3 AZolNotF3ToU3(AF3 x){return AU3(AF3_(1.0)-x);}
- AU4 AZolNotF4ToU4(AF4 x){return AU4(AF4_(1.0)-x);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolU1ToF1(AU1 x){return AF1(x);}
- AF2 AZolU2ToF2(AU2 x){return AF2(x);}
- AF3 AZolU3ToF3(AU3 x){return AF3(x);}
- AF4 AZolU4ToF4(AU4 x){return AF4(x);}
-//==============================================================================================================================
- AF1 AZolAndF1(AF1 x,AF1 y){return min(x,y);}
- AF2 AZolAndF2(AF2 x,AF2 y){return min(x,y);}
- AF3 AZolAndF3(AF3 x,AF3 y){return min(x,y);}
- AF4 AZolAndF4(AF4 x,AF4 y){return min(x,y);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 ASolAndNotF1(AF1 x,AF1 y){return (-x)*y+AF1_(1.0);}
- AF2 ASolAndNotF2(AF2 x,AF2 y){return (-x)*y+AF2_(1.0);}
- AF3 ASolAndNotF3(AF3 x,AF3 y){return (-x)*y+AF3_(1.0);}
- AF4 ASolAndNotF4(AF4 x,AF4 y){return (-x)*y+AF4_(1.0);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolAndOrF1(AF1 x,AF1 y,AF1 z){return ASatF1(x*y+z);}
- AF2 AZolAndOrF2(AF2 x,AF2 y,AF2 z){return ASatF2(x*y+z);}
- AF3 AZolAndOrF3(AF3 x,AF3 y,AF3 z){return ASatF3(x*y+z);}
- AF4 AZolAndOrF4(AF4 x,AF4 y,AF4 z){return ASatF4(x*y+z);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolGtZeroF1(AF1 x){return ASatF1(x*AF1_(A_INFP_F));}
- AF2 AZolGtZeroF2(AF2 x){return ASatF2(x*AF2_(A_INFP_F));}
- AF3 AZolGtZeroF3(AF3 x){return ASatF3(x*AF3_(A_INFP_F));}
- AF4 AZolGtZeroF4(AF4 x){return ASatF4(x*AF4_(A_INFP_F));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolNotF1(AF1 x){return AF1_(1.0)-x;}
- AF2 AZolNotF2(AF2 x){return AF2_(1.0)-x;}
- AF3 AZolNotF3(AF3 x){return AF3_(1.0)-x;}
- AF4 AZolNotF4(AF4 x){return AF4_(1.0)-x;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolOrF1(AF1 x,AF1 y){return max(x,y);}
- AF2 AZolOrF2(AF2 x,AF2 y){return max(x,y);}
- AF3 AZolOrF3(AF3 x,AF3 y){return max(x,y);}
- AF4 AZolOrF4(AF4 x,AF4 y){return max(x,y);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolSelF1(AF1 x,AF1 y,AF1 z){AF1 r=(-x)*z+z;return x*y+r;}
- AF2 AZolSelF2(AF2 x,AF2 y,AF2 z){AF2 r=(-x)*z+z;return x*y+r;}
- AF3 AZolSelF3(AF3 x,AF3 y,AF3 z){AF3 r=(-x)*z+z;return x*y+r;}
- AF4 AZolSelF4(AF4 x,AF4 y,AF4 z){AF4 r=(-x)*z+z;return x*y+r;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolSignedF1(AF1 x){return ASatF1(x*AF1_(A_INFN_F));}
- AF2 AZolSignedF2(AF2 x){return ASatF2(x*AF2_(A_INFN_F));}
- AF3 AZolSignedF3(AF3 x){return ASatF3(x*AF3_(A_INFN_F));}
- AF4 AZolSignedF4(AF4 x){return ASatF4(x*AF4_(A_INFN_F));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AZolZeroPassF1(AF1 x,AF1 y){return AF1_AU1(select((AU1_AF1(x)!=AU1_(0)), AU1_(0), AU1_AF1(y)));}
- AF2 AZolZeroPassF2(AF2 x,AF2 y){return AF2_AU2(select((AU2_AF2(x)!=AU2_(0)), AU2_(0), AU2_AF2(y)));}
- AF3 AZolZeroPassF3(AF3 x,AF3 y){return AF3_AU3(select((AU3_AF3(x)!=AU3_(0)), AU3_(0), AU3_AF3(y)));}
- AF4 AZolZeroPassF4(AF4 x,AF4 y){return AF4_AU4(select((AU4_AF4(x)!=AU4_(0)), AU4_(0), AU4_AF4(y)));}
- #endif
-//==============================================================================================================================
- #ifdef A_HALF
- AW1 AZolAndW1(AW1 x,AW1 y){return min(x,y);}
- AW2 AZolAndW2(AW2 x,AW2 y){return min(x,y);}
- AW3 AZolAndW3(AW3 x,AW3 y){return min(x,y);}
- AW4 AZolAndW4(AW4 x,AW4 y){return min(x,y);}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AZolNotW1(AW1 x){return x^AW1_(1);}
- AW2 AZolNotW2(AW2 x){return x^AW2_(1);}
- AW3 AZolNotW3(AW3 x){return x^AW3_(1);}
- AW4 AZolNotW4(AW4 x){return x^AW4_(1);}
-//------------------------------------------------------------------------------------------------------------------------------
- AW1 AZolOrW1(AW1 x,AW1 y){return max(x,y);}
- AW2 AZolOrW2(AW2 x,AW2 y){return max(x,y);}
- AW3 AZolOrW3(AW3 x,AW3 y){return max(x,y);}
- AW4 AZolOrW4(AW4 x,AW4 y){return max(x,y);}
-//==============================================================================================================================
- // Uses denormal trick.
- AW1 AZolH1ToW1(AH1 x){return AW1_AH1(x*AH1_AW1(AW1_(1)));}
- AW2 AZolH2ToW2(AH2 x){return AW2_AH2(x*AH2_AW2(AW2_(1)));}
- AW3 AZolH3ToW3(AH3 x){return AW3_AH3(x*AH3_AW3(AW3_(1)));}
- AW4 AZolH4ToW4(AH4 x){return AW4_AH4(x*AH4_AW4(AW4_(1)));}
-//------------------------------------------------------------------------------------------------------------------------------
- // AMD arch lacks a packed conversion opcode.
- AH1 AZolW1ToH1(AW1 x){return AH1_AW1(x*AW1_AH1(AH1_(1.0)));}
- AH2 AZolW2ToH2(AW2 x){return AH2_AW2(x*AW2_AH2(AH2_(1.0)));}
- AH3 AZolW1ToH3(AW3 x){return AH3_AW3(x*AW3_AH3(AH3_(1.0)));}
- AH4 AZolW2ToH4(AW4 x){return AH4_AW4(x*AW4_AH4(AH4_(1.0)));}
-//==============================================================================================================================
- AH1 AZolAndH1(AH1 x,AH1 y){return min(x,y);}
- AH2 AZolAndH2(AH2 x,AH2 y){return min(x,y);}
- AH3 AZolAndH3(AH3 x,AH3 y){return min(x,y);}
- AH4 AZolAndH4(AH4 x,AH4 y){return min(x,y);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 ASolAndNotH1(AH1 x,AH1 y){return (-x)*y+AH1_(1.0);}
- AH2 ASolAndNotH2(AH2 x,AH2 y){return (-x)*y+AH2_(1.0);}
- AH3 ASolAndNotH3(AH3 x,AH3 y){return (-x)*y+AH3_(1.0);}
- AH4 ASolAndNotH4(AH4 x,AH4 y){return (-x)*y+AH4_(1.0);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AZolAndOrH1(AH1 x,AH1 y,AH1 z){return ASatH1(x*y+z);}
- AH2 AZolAndOrH2(AH2 x,AH2 y,AH2 z){return ASatH2(x*y+z);}
- AH3 AZolAndOrH3(AH3 x,AH3 y,AH3 z){return ASatH3(x*y+z);}
- AH4 AZolAndOrH4(AH4 x,AH4 y,AH4 z){return ASatH4(x*y+z);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AZolGtZeroH1(AH1 x){return ASatH1(x*AH1_(A_INFP_H));}
- AH2 AZolGtZeroH2(AH2 x){return ASatH2(x*AH2_(A_INFP_H));}
- AH3 AZolGtZeroH3(AH3 x){return ASatH3(x*AH3_(A_INFP_H));}
- AH4 AZolGtZeroH4(AH4 x){return ASatH4(x*AH4_(A_INFP_H));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AZolNotH1(AH1 x){return AH1_(1.0)-x;}
- AH2 AZolNotH2(AH2 x){return AH2_(1.0)-x;}
- AH3 AZolNotH3(AH3 x){return AH3_(1.0)-x;}
- AH4 AZolNotH4(AH4 x){return AH4_(1.0)-x;}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AZolOrH1(AH1 x,AH1 y){return max(x,y);}
- AH2 AZolOrH2(AH2 x,AH2 y){return max(x,y);}
- AH3 AZolOrH3(AH3 x,AH3 y){return max(x,y);}
- AH4 AZolOrH4(AH4 x,AH4 y){return max(x,y);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AZolSelH1(AH1 x,AH1 y,AH1 z){AH1 r=(-x)*z+z;return x*y+r;}
- AH2 AZolSelH2(AH2 x,AH2 y,AH2 z){AH2 r=(-x)*z+z;return x*y+r;}
- AH3 AZolSelH3(AH3 x,AH3 y,AH3 z){AH3 r=(-x)*z+z;return x*y+r;}
- AH4 AZolSelH4(AH4 x,AH4 y,AH4 z){AH4 r=(-x)*z+z;return x*y+r;}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AZolSignedH1(AH1 x){return ASatH1(x*AH1_(A_INFN_H));}
- AH2 AZolSignedH2(AH2 x){return ASatH2(x*AH2_(A_INFN_H));}
- AH3 AZolSignedH3(AH3 x){return ASatH3(x*AH3_(A_INFN_H));}
- AH4 AZolSignedH4(AH4 x){return ASatH4(x*AH4_(A_INFN_H));}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// COLOR CONVERSIONS
-//------------------------------------------------------------------------------------------------------------------------------
-// These are all linear to/from some other space (where 'linear' has been shortened out of the function name).
-// So 'ToGamma' is 'LinearToGamma', and 'FromGamma' is 'LinearFromGamma'.
-// These are branch free implementations.
-// The AToSrgbF1() function is useful for stores for compute shaders for GPUs without hardware linear->sRGB store conversion.
-//------------------------------------------------------------------------------------------------------------------------------
-// TRANSFER FUNCTIONS
-// ==================
-// 709 ..... Rec709 used for some HDTVs
-// Gamma ... Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native
-// Pq ...... PQ native for HDR10
-// Srgb .... The sRGB output, typical of PC displays, useful for 10-bit output, or storing to 8-bit UNORM without SRGB type
-// Two ..... Gamma 2.0, fastest conversion (useful for intermediate pass approximations)
-// Three ... Gamma 3.0, less fast, but good for HDR.
-//------------------------------------------------------------------------------------------------------------------------------
-// KEEPING TO SPEC
-// ===============
-// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times.
-// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range).
-// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range).
-// Also there is a slight step in the transition regions.
-// Precision of the coefficients in the spec being the likely cause.
-// Main usage case of the sRGB code is to do the linear->sRGB converstion in a compute shader before store.
-// This is to work around lack of hardware (typically only ROP does the conversion for free).
-// To "correct" the linear segment, would be to introduce error, because hardware decode of sRGB->linear is fixed (and free).
-// So this header keeps with the spec.
-// For linear->sRGB transforms, the linear segment in some respects reduces error, because rounding in that region is linear.
-// Rounding in the curved region in hardware (and fast software code) introduces error due to rounding in non-linear.
-//------------------------------------------------------------------------------------------------------------------------------
-// FOR PQ
-// ======
-// Both input and output is {0.0-1.0}, and where output 1.0 represents 10000.0 cd/m^2.
-// All constants are only specified to FP32 precision.
-// External PQ source reference,
-// - https://github.com/ampas/aces-dev/blob/master/transforms/ctl/utilities/ACESlib.Utilities_Color.a1.0.1.ctl
-//------------------------------------------------------------------------------------------------------------------------------
-// PACKED VERSIONS
-// ===============
-// These are the A*H2() functions.
-// There is no PQ functions as FP16 seemed to not have enough precision for the conversion.
-// The remaining functions are "good enough" for 8-bit, and maybe 10-bit if not concerned about a few 1-bit errors.
-// Precision is lowest in the 709 conversion, higher in sRGB, higher still in Two and Gamma (when using 2.2 at least).
-//------------------------------------------------------------------------------------------------------------------------------
-// NOTES
-// =====
-// Could be faster for PQ conversions to be in ALU or a texture lookup depending on usage case.
-//==============================================================================================================================
- #if 1
- AF1 ATo709F1(AF1 c){AF3 j=AF3(0.018*4.5,4.5,0.45);AF2 k=AF2(1.099,-0.099);
- return clamp(j.x ,c*j.y ,pow(c,j.z )*k.x +k.y );}
- AF2 ATo709F2(AF2 c){AF3 j=AF3(0.018*4.5,4.5,0.45);AF2 k=AF2(1.099,-0.099);
- return clamp(j.xx ,c*j.yy ,pow(c,j.zz )*k.xx +k.yy );}
- AF3 ATo709F3(AF3 c){AF3 j=AF3(0.018*4.5,4.5,0.45);AF2 k=AF2(1.099,-0.099);
- return clamp(j.xxx,c*j.yyy,pow(c,j.zzz)*k.xxx+k.yyy);}
-//------------------------------------------------------------------------------------------------------------------------------
- // Note 'rcpX' is '1/x', where the 'x' is what would be used in AFromGamma().
- AF1 AToGammaF1(AF1 c,AF1 rcpX){return pow(c,AF1_(rcpX));}
- AF2 AToGammaF2(AF2 c,AF1 rcpX){return pow(c,AF2_(rcpX));}
- AF3 AToGammaF3(AF3 c,AF1 rcpX){return pow(c,AF3_(rcpX));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AToPqF1(AF1 x){AF1 p=pow(x,AF1_(0.159302));
- return pow((AF1_(0.835938)+AF1_(18.8516)*p)/(AF1_(1.0)+AF1_(18.6875)*p),AF1_(78.8438));}
- AF2 AToPqF1(AF2 x){AF2 p=pow(x,AF2_(0.159302));
- return pow((AF2_(0.835938)+AF2_(18.8516)*p)/(AF2_(1.0)+AF2_(18.6875)*p),AF2_(78.8438));}
- AF3 AToPqF1(AF3 x){AF3 p=pow(x,AF3_(0.159302));
- return pow((AF3_(0.835938)+AF3_(18.8516)*p)/(AF3_(1.0)+AF3_(18.6875)*p),AF3_(78.8438));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AToSrgbF1(AF1 c){AF3 j=AF3(0.0031308*12.92,12.92,1.0/2.4);AF2 k=AF2(1.055,-0.055);
- return clamp(j.x ,c*j.y ,pow(c,j.z )*k.x +k.y );}
- AF2 AToSrgbF2(AF2 c){AF3 j=AF3(0.0031308*12.92,12.92,1.0/2.4);AF2 k=AF2(1.055,-0.055);
- return clamp(j.xx ,c*j.yy ,pow(c,j.zz )*k.xx +k.yy );}
- AF3 AToSrgbF3(AF3 c){AF3 j=AF3(0.0031308*12.92,12.92,1.0/2.4);AF2 k=AF2(1.055,-0.055);
- return clamp(j.xxx,c*j.yyy,pow(c,j.zzz)*k.xxx+k.yyy);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AToTwoF1(AF1 c){return sqrt(c);}
- AF2 AToTwoF2(AF2 c){return sqrt(c);}
- AF3 AToTwoF3(AF3 c){return sqrt(c);}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AToThreeF1(AF1 c){return pow(c,AF1_(1.0/3.0));}
- AF2 AToThreeF2(AF2 c){return pow(c,AF2_(1.0/3.0));}
- AF3 AToThreeF3(AF3 c){return pow(c,AF3_(1.0/3.0));}
- #endif
-//==============================================================================================================================
- #if 1
- // Unfortunately median won't work here.
- AF1 AFrom709F1(AF1 c){AF3 j=AF3(0.081/4.5,1.0/4.5,1.0/0.45);AF2 k=AF2(1.0/1.099,0.099/1.099);
- return AZolSelF1(AZolSignedF1(c-j.x ),c*j.y ,pow(c*k.x +k.y ,j.z ));}
- AF2 AFrom709F2(AF2 c){AF3 j=AF3(0.081/4.5,1.0/4.5,1.0/0.45);AF2 k=AF2(1.0/1.099,0.099/1.099);
- return AZolSelF2(AZolSignedF2(c-j.xx ),c*j.yy ,pow(c*k.xx +k.yy ,j.zz ));}
- AF3 AFrom709F3(AF3 c){AF3 j=AF3(0.081/4.5,1.0/4.5,1.0/0.45);AF2 k=AF2(1.0/1.099,0.099/1.099);
- return AZolSelF3(AZolSignedF3(c-j.xxx),c*j.yyy,pow(c*k.xxx+k.yyy,j.zzz));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AFromGammaF1(AF1 c,AF1 x){return pow(c,AF1_(x));}
- AF2 AFromGammaF2(AF2 c,AF1 x){return pow(c,AF2_(x));}
- AF3 AFromGammaF3(AF3 c,AF1 x){return pow(c,AF3_(x));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AFromPqF1(AF1 x){AF1 p=pow(x,AF1_(0.0126833));
- return pow(ASatF1(p-AF1_(0.835938))/(AF1_(18.8516)-AF1_(18.6875)*p),AF1_(6.27739));}
- AF2 AFromPqF1(AF2 x){AF2 p=pow(x,AF2_(0.0126833));
- return pow(ASatF2(p-AF2_(0.835938))/(AF2_(18.8516)-AF2_(18.6875)*p),AF2_(6.27739));}
- AF3 AFromPqF1(AF3 x){AF3 p=pow(x,AF3_(0.0126833));
- return pow(ASatF3(p-AF3_(0.835938))/(AF3_(18.8516)-AF3_(18.6875)*p),AF3_(6.27739));}
-//------------------------------------------------------------------------------------------------------------------------------
- // Unfortunately median won't work here.
- AF1 AFromSrgbF1(AF1 c){AF3 j=AF3(0.04045/12.92,1.0/12.92,2.4);AF2 k=AF2(1.0/1.055,0.055/1.055);
- return AZolSelF1(AZolSignedF1(c-j.x ),c*j.y ,pow(c*k.x +k.y ,j.z ));}
- AF2 AFromSrgbF2(AF2 c){AF3 j=AF3(0.04045/12.92,1.0/12.92,2.4);AF2 k=AF2(1.0/1.055,0.055/1.055);
- return AZolSelF2(AZolSignedF2(c-j.xx ),c*j.yy ,pow(c*k.xx +k.yy ,j.zz ));}
- AF3 AFromSrgbF3(AF3 c){AF3 j=AF3(0.04045/12.92,1.0/12.92,2.4);AF2 k=AF2(1.0/1.055,0.055/1.055);
- return AZolSelF3(AZolSignedF3(c-j.xxx),c*j.yyy,pow(c*k.xxx+k.yyy,j.zzz));}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AFromTwoF1(AF1 c){return c*c;}
- AF2 AFromTwoF2(AF2 c){return c*c;}
- AF3 AFromTwoF3(AF3 c){return c*c;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF1 AFromThreeF1(AF1 c){return c*c*c;}
- AF2 AFromThreeF2(AF2 c){return c*c*c;}
- AF3 AFromThreeF3(AF3 c){return c*c*c;}
- #endif
-//==============================================================================================================================
- #ifdef A_HALF
- AH1 ATo709H1(AH1 c){AH3 j=AH3(0.018*4.5,4.5,0.45);AH2 k=AH2(1.099,-0.099);
- return clamp(j.x ,c*j.y ,pow(c,j.z )*k.x +k.y );}
- AH2 ATo709H2(AH2 c){AH3 j=AH3(0.018*4.5,4.5,0.45);AH2 k=AH2(1.099,-0.099);
- return clamp(j.xx ,c*j.yy ,pow(c,j.zz )*k.xx +k.yy );}
- AH3 ATo709H3(AH3 c){AH3 j=AH3(0.018*4.5,4.5,0.45);AH2 k=AH2(1.099,-0.099);
- return clamp(j.xxx,c*j.yyy,pow(c,j.zzz)*k.xxx+k.yyy);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AToGammaH1(AH1 c,AH1 rcpX){return pow(c,AH1_(rcpX));}
- AH2 AToGammaH2(AH2 c,AH1 rcpX){return pow(c,AH2_(rcpX));}
- AH3 AToGammaH3(AH3 c,AH1 rcpX){return pow(c,AH3_(rcpX));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AToSrgbH1(AH1 c){AH3 j=AH3(0.0031308*12.92,12.92,1.0/2.4);AH2 k=AH2(1.055,-0.055);
- return clamp(j.x ,c*j.y ,pow(c,j.z )*k.x +k.y );}
- AH2 AToSrgbH2(AH2 c){AH3 j=AH3(0.0031308*12.92,12.92,1.0/2.4);AH2 k=AH2(1.055,-0.055);
- return clamp(j.xx ,c*j.yy ,pow(c,j.zz )*k.xx +k.yy );}
- AH3 AToSrgbH3(AH3 c){AH3 j=AH3(0.0031308*12.92,12.92,1.0/2.4);AH2 k=AH2(1.055,-0.055);
- return clamp(j.xxx,c*j.yyy,pow(c,j.zzz)*k.xxx+k.yyy);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AToTwoH1(AH1 c){return sqrt(c);}
- AH2 AToTwoH2(AH2 c){return sqrt(c);}
- AH3 AToTwoH3(AH3 c){return sqrt(c);}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AToThreeF1(AH1 c){return pow(c,AH1_(1.0/3.0));}
- AH2 AToThreeF2(AH2 c){return pow(c,AH2_(1.0/3.0));}
- AH3 AToThreeF3(AH3 c){return pow(c,AH3_(1.0/3.0));}
- #endif
-//==============================================================================================================================
- #ifdef A_HALF
- AH1 AFrom709H1(AH1 c){AH3 j=AH3(0.081/4.5,1.0/4.5,1.0/0.45);AH2 k=AH2(1.0/1.099,0.099/1.099);
- return AZolSelH1(AZolSignedH1(c-j.x ),c*j.y ,pow(c*k.x +k.y ,j.z ));}
- AH2 AFrom709H2(AH2 c){AH3 j=AH3(0.081/4.5,1.0/4.5,1.0/0.45);AH2 k=AH2(1.0/1.099,0.099/1.099);
- return AZolSelH2(AZolSignedH2(c-j.xx ),c*j.yy ,pow(c*k.xx +k.yy ,j.zz ));}
- AH3 AFrom709H3(AH3 c){AH3 j=AH3(0.081/4.5,1.0/4.5,1.0/0.45);AH2 k=AH2(1.0/1.099,0.099/1.099);
- return AZolSelH3(AZolSignedH3(c-j.xxx),c*j.yyy,pow(c*k.xxx+k.yyy,j.zzz));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AFromGammaH1(AH1 c,AH1 x){return pow(c,AH1_(x));}
- AH2 AFromGammaH2(AH2 c,AH1 x){return pow(c,AH2_(x));}
- AH3 AFromGammaH3(AH3 c,AH1 x){return pow(c,AH3_(x));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AHromSrgbF1(AH1 c){AH3 j=AH3(0.04045/12.92,1.0/12.92,2.4);AH2 k=AH2(1.0/1.055,0.055/1.055);
- return AZolSelH1(AZolSignedH1(c-j.x ),c*j.y ,pow(c*k.x +k.y ,j.z ));}
- AH2 AHromSrgbF2(AH2 c){AH3 j=AH3(0.04045/12.92,1.0/12.92,2.4);AH2 k=AH2(1.0/1.055,0.055/1.055);
- return AZolSelH2(AZolSignedH2(c-j.xx ),c*j.yy ,pow(c*k.xx +k.yy ,j.zz ));}
- AH3 AHromSrgbF3(AH3 c){AH3 j=AH3(0.04045/12.92,1.0/12.92,2.4);AH2 k=AH2(1.0/1.055,0.055/1.055);
- return AZolSelH3(AZolSignedH3(c-j.xxx),c*j.yyy,pow(c*k.xxx+k.yyy,j.zzz));}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AFromTwoH1(AH1 c){return c*c;}
- AH2 AFromTwoH2(AH2 c){return c*c;}
- AH3 AFromTwoH3(AH3 c){return c*c;}
-//------------------------------------------------------------------------------------------------------------------------------
- AH1 AFromThreeH1(AH1 c){return c*c*c;}
- AH2 AFromThreeH2(AH2 c){return c*c*c;}
- AH3 AFromThreeH3(AH3 c){return c*c*c;}
- #endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// CS REMAP
-//==============================================================================================================================
- // Simple remap 64x1 to 8x8 with rotated 2x2 pixel quads in quad linear.
- // 543210
- // ======
- // ..xxx.
- // yy...y
- AU2 ARmp8x8(AU1 a){return AU2(ABfe(a,1u,3u),ABfiM(ABfe(a,3u,3u),a,1u));}
-//==============================================================================================================================
- // More complex remap 64x1 to 8x8 which is necessary for 2D wave reductions.
- // 543210
- // ======
- // .xx..x
- // y..yy.
- // Details,
- // LANE TO 8x8 MAPPING
- // ===================
- // 00 01 08 09 10 11 18 19
- // 02 03 0a 0b 12 13 1a 1b
- // 04 05 0c 0d 14 15 1c 1d
- // 06 07 0e 0f 16 17 1e 1f
- // 20 21 28 29 30 31 38 39
- // 22 23 2a 2b 32 33 3a 3b
- // 24 25 2c 2d 34 35 3c 3d
- // 26 27 2e 2f 36 37 3e 3f
- AU2 ARmpRed8x8(AU1 a){return AU2(ABfiM(ABfe(a,2u,3u),a,1u),ABfiM(ABfe(a,3u,3u),ABfe(a,1u,2u),2u));}
-//==============================================================================================================================
- #ifdef A_HALF
- AW2 ARmp8x8H(AU1 a){return AW2(ABfe(a,1u,3u),ABfiM(ABfe(a,3u,3u),a,1u));}
- AW2 ARmpRed8x8H(AU1 a){return AW2(ABfiM(ABfe(a,2u,3u),a,1u),ABfiM(ABfe(a,3u,3u),ABfe(a,1u,2u),2u));}
- #endif
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-// REFERENCE
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// IEEE FLOAT RULES
-// ================
-// - saturate(NaN)=0, saturate(-INF)=0, saturate(+INF)=1
-// - {+/-}0 * {+/-}INF = NaN
-// - -INF + (+INF) = NaN
-// - {+/-}0 / {+/-}0 = NaN
-// - {+/-}INF / {+/-}INF = NaN
-// - a<(-0) := sqrt(a) = NaN (a=-0.0 won't NaN)
-// - 0 == -0
-// - 4/0 = +INF
-// - 4/-0 = -INF
-// - 4+INF = +INF
-// - 4-INF = -INF
-// - 4*(+INF) = +INF
-// - 4*(-INF) = -INF
-// - -4*(+INF) = -INF
-// - sqrt(+INF) = +INF
-//------------------------------------------------------------------------------------------------------------------------------
-// FP16 ENCODING
-// =============
-// fedcba9876543210
-// ----------------
-// ......mmmmmmmmmm 10-bit mantissa (encodes 11-bit 0.5 to 1.0 except for denormals)
-// .eeeee.......... 5-bit exponent
-// .00000.......... denormals
-// .00001.......... -14 exponent
-// .11110.......... 15 exponent
-// .111110000000000 infinity
-// .11111nnnnnnnnnn NaN with n!=0
-// s............... sign
-//------------------------------------------------------------------------------------------------------------------------------
-// FP16/INT16 ALIASING DENORMAL
-// ============================
-// 11-bit unsigned integers alias with half float denormal/normal values,
-// 1 = 2^(-24) = 1/16777216 ....................... first denormal value
-// 2 = 2^(-23)
-// ...
-// 1023 = 2^(-14)*(1-2^(-10)) = 2^(-14)*(1-1/1024) ... last denormal value
-// 1024 = 2^(-14) = 1/16384 .......................... first normal value that still maps to integers
-// 2047 .............................................. last normal value that still maps to integers
-// Scaling limits,
-// 2^15 = 32768 ...................................... largest power of 2 scaling
-// Largest pow2 conversion mapping is at *32768,
-// 1 : 2^(-9) = 1/512
-// 2 : 1/256
-// 4 : 1/128
-// 8 : 1/64
-// 16 : 1/32
-// 32 : 1/16
-// 64 : 1/8
-// 128 : 1/4
-// 256 : 1/2
-// 512 : 1
-// 1024 : 2
-// 2047 : a little less than 4
-//==============================================================================================================================
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-//
-// GPU/CPU PORTABILITY
-//
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// This is the GPU implementation.
-// See the CPU implementation for docs.
-//==============================================================================================================================
-#ifdef A_GPU
- #define A_TRUE true
- #define A_FALSE false
- #define A_STATIC
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// VECTOR ARGUMENT/RETURN/INITIALIZATION PORTABILITY
-//==============================================================================================================================
- #define retAD2 AD2
- #define retAD3 AD3
- #define retAD4 AD4
- #define retAF2 AF2
- #define retAF3 AF3
- #define retAF4 AF4
- #define retAL2 AL2
- #define retAL3 AL3
- #define retAL4 AL4
- #define retAU2 AU2
- #define retAU3 AU3
- #define retAU4 AU4
-//------------------------------------------------------------------------------------------------------------------------------
- #define inAD2 in AD2
- #define inAD3 in AD3
- #define inAD4 in AD4
- #define inAF2 in AF2
- #define inAF3 in AF3
- #define inAF4 in AF4
- #define inAL2 in AL2
- #define inAL3 in AL3
- #define inAL4 in AL4
- #define inAU2 in AU2
- #define inAU3 in AU3
- #define inAU4 in AU4
-//------------------------------------------------------------------------------------------------------------------------------
- #define inoutAD2 inout AD2
- #define inoutAD3 inout AD3
- #define inoutAD4 inout AD4
- #define inoutAF2 inout AF2
- #define inoutAF3 inout AF3
- #define inoutAF4 inout AF4
- #define inoutAL2 inout AL2
- #define inoutAL3 inout AL3
- #define inoutAL4 inout AL4
- #define inoutAU2 inout AU2
- #define inoutAU3 inout AU3
- #define inoutAU4 inout AU4
-//------------------------------------------------------------------------------------------------------------------------------
- #define outAD2 out AD2
- #define outAD3 out AD3
- #define outAD4 out AD4
- #define outAF2 out AF2
- #define outAF3 out AF3
- #define outAF4 out AF4
- #define outAL2 out AL2
- #define outAL3 out AL3
- #define outAL4 out AL4
- #define outAU2 out AU2
- #define outAU3 out AU3
- #define outAU4 out AU4
-//------------------------------------------------------------------------------------------------------------------------------
- #define varAD2(x) AD2 x
- #define varAD3(x) AD3 x
- #define varAD4(x) AD4 x
- #define varAF2(x) AF2 x
- #define varAF3(x) AF3 x
- #define varAF4(x) AF4 x
- #define varAL2(x) AL2 x
- #define varAL3(x) AL3 x
- #define varAL4(x) AL4 x
- #define varAU2(x) AU2 x
- #define varAU3(x) AU3 x
- #define varAU4(x) AU4 x
-//------------------------------------------------------------------------------------------------------------------------------
- #define initAD2(x,y) AD2(x,y)
- #define initAD3(x,y,z) AD3(x,y,z)
- #define initAD4(x,y,z,w) AD4(x,y,z,w)
- #define initAF2(x,y) AF2(x,y)
- #define initAF3(x,y,z) AF3(x,y,z)
- #define initAF4(x,y,z,w) AF4(x,y,z,w)
- #define initAL2(x,y) AL2(x,y)
- #define initAL3(x,y,z) AL3(x,y,z)
- #define initAL4(x,y,z,w) AL4(x,y,z,w)
- #define initAU2(x,y) AU2(x,y)
- #define initAU3(x,y,z) AU3(x,y,z)
- #define initAU4(x,y,z,w) AU4(x,y,z,w)
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// SCALAR RETURN OPS
-//==============================================================================================================================
- #define AAbsD1(a) abs(AD1(a))
- #define AAbsF1(a) abs(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define ACosD1(a) cos(AD1(a))
- #define ACosF1(a) cos(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define ADotD2(a,b) dot(AD2(a),AD2(b))
- #define ADotD3(a,b) dot(AD3(a),AD3(b))
- #define ADotD4(a,b) dot(AD4(a),AD4(b))
- #define ADotF2(a,b) dot(AF2(a),AF2(b))
- #define ADotF3(a,b) dot(AF3(a),AF3(b))
- #define ADotF4(a,b) dot(AF4(a),AF4(b))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AExp2D1(a) exp2(AD1(a))
- #define AExp2F1(a) exp2(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AFloorD1(a) floor(AD1(a))
- #define AFloorF1(a) floor(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define ALog2D1(a) log2(AD1(a))
- #define ALog2F1(a) log2(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define AMaxD1(a,b) max(a,b)
- #define AMaxF1(a,b) max(a,b)
- #define AMaxL1(a,b) max(a,b)
- #define AMaxU1(a,b) max(a,b)
-//------------------------------------------------------------------------------------------------------------------------------
- #define AMinD1(a,b) min(a,b)
- #define AMinF1(a,b) min(a,b)
- #define AMinL1(a,b) min(a,b)
- #define AMinU1(a,b) min(a,b)
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASinD1(a) sin(AD1(a))
- #define ASinF1(a) sin(AF1(a))
-//------------------------------------------------------------------------------------------------------------------------------
- #define ASqrtD1(a) sqrt(AD1(a))
- #define ASqrtF1(a) sqrt(AF1(a))
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// SCALAR RETURN OPS - DEPENDENT
-//==============================================================================================================================
- #define APowD1(a,b) pow(AD1(a),AF1(b))
- #define APowF1(a,b) pow(AF1(a),AF1(b))
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// VECTOR OPS
-//------------------------------------------------------------------------------------------------------------------------------
-// These are added as needed for production or prototyping, so not necessarily a complete set.
-// They follow a convention of taking in a destination and also returning the destination value to increase utility.
-//==============================================================================================================================
- #ifdef A_DUBL
- AD2 opAAbsD2(outAD2 d,inAD2 a){d=abs(a);return d;}
- AD3 opAAbsD3(outAD3 d,inAD3 a){d=abs(a);return d;}
- AD4 opAAbsD4(outAD4 d,inAD4 a){d=abs(a);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opAAddD2(outAD2 d,inAD2 a,inAD2 b){d=a+b;return d;}
- AD3 opAAddD3(outAD3 d,inAD3 a,inAD3 b){d=a+b;return d;}
- AD4 opAAddD4(outAD4 d,inAD4 a,inAD4 b){d=a+b;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opAAddOneD2(outAD2 d,inAD2 a,AD1 b){d=a+AD2_(b);return d;}
- AD3 opAAddOneD3(outAD3 d,inAD3 a,AD1 b){d=a+AD3_(b);return d;}
- AD4 opAAddOneD4(outAD4 d,inAD4 a,AD1 b){d=a+AD4_(b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opACpyD2(outAD2 d,inAD2 a){d=a;return d;}
- AD3 opACpyD3(outAD3 d,inAD3 a){d=a;return d;}
- AD4 opACpyD4(outAD4 d,inAD4 a){d=a;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opALerpD2(outAD2 d,inAD2 a,inAD2 b,inAD2 c){d=ALerpD2(a,b,c);return d;}
- AD3 opALerpD3(outAD3 d,inAD3 a,inAD3 b,inAD3 c){d=ALerpD3(a,b,c);return d;}
- AD4 opALerpD4(outAD4 d,inAD4 a,inAD4 b,inAD4 c){d=ALerpD4(a,b,c);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opALerpOneD2(outAD2 d,inAD2 a,inAD2 b,AD1 c){d=ALerpD2(a,b,AD2_(c));return d;}
- AD3 opALerpOneD3(outAD3 d,inAD3 a,inAD3 b,AD1 c){d=ALerpD3(a,b,AD3_(c));return d;}
- AD4 opALerpOneD4(outAD4 d,inAD4 a,inAD4 b,AD1 c){d=ALerpD4(a,b,AD4_(c));return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opAMaxD2(outAD2 d,inAD2 a,inAD2 b){d=max(a,b);return d;}
- AD3 opAMaxD3(outAD3 d,inAD3 a,inAD3 b){d=max(a,b);return d;}
- AD4 opAMaxD4(outAD4 d,inAD4 a,inAD4 b){d=max(a,b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opAMinD2(outAD2 d,inAD2 a,inAD2 b){d=min(a,b);return d;}
- AD3 opAMinD3(outAD3 d,inAD3 a,inAD3 b){d=min(a,b);return d;}
- AD4 opAMinD4(outAD4 d,inAD4 a,inAD4 b){d=min(a,b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opAMulD2(outAD2 d,inAD2 a,inAD2 b){d=a*b;return d;}
- AD3 opAMulD3(outAD3 d,inAD3 a,inAD3 b){d=a*b;return d;}
- AD4 opAMulD4(outAD4 d,inAD4 a,inAD4 b){d=a*b;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opAMulOneD2(outAD2 d,inAD2 a,AD1 b){d=a*AD2_(b);return d;}
- AD3 opAMulOneD3(outAD3 d,inAD3 a,AD1 b){d=a*AD3_(b);return d;}
- AD4 opAMulOneD4(outAD4 d,inAD4 a,AD1 b){d=a*AD4_(b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opANegD2(outAD2 d,inAD2 a){d=-a;return d;}
- AD3 opANegD3(outAD3 d,inAD3 a){d=-a;return d;}
- AD4 opANegD4(outAD4 d,inAD4 a){d=-a;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AD2 opARcpD2(outAD2 d,inAD2 a){d=ARcpD2(a);return d;}
- AD3 opARcpD3(outAD3 d,inAD3 a){d=ARcpD3(a);return d;}
- AD4 opARcpD4(outAD4 d,inAD4 a){d=ARcpD4(a);return d;}
- #endif
-//==============================================================================================================================
- AF2 opAAbsF2(outAF2 d,inAF2 a){d=abs(a);return d;}
- AF3 opAAbsF3(outAF3 d,inAF3 a){d=abs(a);return d;}
- AF4 opAAbsF4(outAF4 d,inAF4 a){d=abs(a);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opAAddF2(outAF2 d,inAF2 a,inAF2 b){d=a+b;return d;}
- AF3 opAAddF3(outAF3 d,inAF3 a,inAF3 b){d=a+b;return d;}
- AF4 opAAddF4(outAF4 d,inAF4 a,inAF4 b){d=a+b;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opAAddOneF2(outAF2 d,inAF2 a,AF1 b){d=a+AF2_(b);return d;}
- AF3 opAAddOneF3(outAF3 d,inAF3 a,AF1 b){d=a+AF3_(b);return d;}
- AF4 opAAddOneF4(outAF4 d,inAF4 a,AF1 b){d=a+AF4_(b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opACpyF2(outAF2 d,inAF2 a){d=a;return d;}
- AF3 opACpyF3(outAF3 d,inAF3 a){d=a;return d;}
- AF4 opACpyF4(outAF4 d,inAF4 a){d=a;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opALerpF2(outAF2 d,inAF2 a,inAF2 b,inAF2 c){d=ALerpF2(a,b,c);return d;}
- AF3 opALerpF3(outAF3 d,inAF3 a,inAF3 b,inAF3 c){d=ALerpF3(a,b,c);return d;}
- AF4 opALerpF4(outAF4 d,inAF4 a,inAF4 b,inAF4 c){d=ALerpF4(a,b,c);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opALerpOneF2(outAF2 d,inAF2 a,inAF2 b,AF1 c){d=ALerpF2(a,b,AF2_(c));return d;}
- AF3 opALerpOneF3(outAF3 d,inAF3 a,inAF3 b,AF1 c){d=ALerpF3(a,b,AF3_(c));return d;}
- AF4 opALerpOneF4(outAF4 d,inAF4 a,inAF4 b,AF1 c){d=ALerpF4(a,b,AF4_(c));return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opAMaxF2(outAF2 d,inAF2 a,inAF2 b){d=max(a,b);return d;}
- AF3 opAMaxF3(outAF3 d,inAF3 a,inAF3 b){d=max(a,b);return d;}
- AF4 opAMaxF4(outAF4 d,inAF4 a,inAF4 b){d=max(a,b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opAMinF2(outAF2 d,inAF2 a,inAF2 b){d=min(a,b);return d;}
- AF3 opAMinF3(outAF3 d,inAF3 a,inAF3 b){d=min(a,b);return d;}
- AF4 opAMinF4(outAF4 d,inAF4 a,inAF4 b){d=min(a,b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opAMulF2(outAF2 d,inAF2 a,inAF2 b){d=a*b;return d;}
- AF3 opAMulF3(outAF3 d,inAF3 a,inAF3 b){d=a*b;return d;}
- AF4 opAMulF4(outAF4 d,inAF4 a,inAF4 b){d=a*b;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opAMulOneF2(outAF2 d,inAF2 a,AF1 b){d=a*AF2_(b);return d;}
- AF3 opAMulOneF3(outAF3 d,inAF3 a,AF1 b){d=a*AF3_(b);return d;}
- AF4 opAMulOneF4(outAF4 d,inAF4 a,AF1 b){d=a*AF4_(b);return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opANegF2(outAF2 d,inAF2 a){d=-a;return d;}
- AF3 opANegF3(outAF3 d,inAF3 a){d=-a;return d;}
- AF4 opANegF4(outAF4 d,inAF4 a){d=-a;return d;}
-//------------------------------------------------------------------------------------------------------------------------------
- AF2 opARcpF2(outAF2 d,inAF2 a){d=ARcpF2(a);return d;}
- AF3 opARcpF3(outAF3 d,inAF3 a){d=ARcpF3(a);return d;}
- AF4 opARcpF4(outAF4 d,inAF4 a){d=ARcpF4(a);return d;}
-#endif
diff --git a/Plugins/MobileFSR/Shaders/Private/ffx_fsr1.ush b/Plugins/MobileFSR/Shaders/Private/ffx_fsr1.ush
deleted file mode 100644
index 4ccc198..0000000
--- a/Plugins/MobileFSR/Shaders/Private/ffx_fsr1.ush
+++ /dev/null
@@ -1,1294 +0,0 @@
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-//
-// AMD FidelityFX SUPER RESOLUTION [FSR 1] ::: SPATIAL SCALING & EXTRAS - v1.20210629
-//
-//
-//------------------------------------------------------------------------------------------------------------------------------
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//------------------------------------------------------------------------------------------------------------------------------
-// FidelityFX Super Resolution Sample
-//
-// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files(the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions :
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-//------------------------------------------------------------------------------------------------------------------------------
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//------------------------------------------------------------------------------------------------------------------------------
-// ABOUT
-// =====
-// FSR is a collection of algorithms relating to generating a higher resolution image.
-// This specific header focuses on single-image non-temporal image scaling, and related tools.
-//
-// The core functions are EASU and RCAS:
-// [EASU] Edge Adaptive Spatial Upsampling ....... 1x to 4x area range spatial scaling, clamped adaptive elliptical filter.
-// [RCAS] Robust Contrast Adaptive Sharpening .... A non-scaling variation on CAS.
-// RCAS needs to be applied after EASU as a separate pass.
-//
-// Optional utility functions are:
-// [LFGA] Linear Film Grain Applicator ........... Tool to apply film grain after scaling.
-// [SRTM] Simple Reversible Tone-Mapper .......... Linear HDR {0 to FP16_MAX} to {0 to 1} and back.
-// [TEPD] Temporal Energy Preserving Dither ...... Temporally energy preserving dithered {0 to 1} linear to gamma 2.0 conversion.
-// See each individual sub-section for inline documentation.
-//------------------------------------------------------------------------------------------------------------------------------
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//------------------------------------------------------------------------------------------------------------------------------
-// FUNCTION PERMUTATIONS
-// =====================
-// *F() ..... Single item computation with 32-bit.
-// *H() ..... Single item computation with 16-bit, with packing (aka two 16-bit ops in parallel) when possible.
-// *Hx2() ... Processing two items in parallel with 16-bit, easier packing.
-// Not all interfaces in this file have a *Hx2() form.
-//==============================================================================================================================
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-// FSR - [EASU] EDGE ADAPTIVE SPATIAL UPSAMPLING
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// EASU provides a high quality spatial-only scaling at relatively low cost.
-// Meaning EASU is appropiate for laptops and other low-end GPUs.
-// Quality from 1x to 4x area scaling is good.
-//------------------------------------------------------------------------------------------------------------------------------
-// The scalar uses a modified fast approximation to the standard lanczos(size=2) kernel.
-// EASU runs in a single pass, so it applies a directionally and anisotropically adaptive radial lanczos.
-// This is also kept as simple as possible to have minimum runtime.
-//------------------------------------------------------------------------------------------------------------------------------
-// The lanzcos filter has negative lobes, so by itself it will introduce ringing.
-// To remove all ringing, the algorithm uses the nearest 2x2 input texels as a neighborhood,
-// and limits output to the minimum and maximum of that neighborhood.
-//------------------------------------------------------------------------------------------------------------------------------
-// Input image requirements:
-//
-// Color needs to be encoded as 3 channel[red, green, blue](e.g.XYZ not supported)
-// Each channel needs to be in the range[0, 1]
-// Any color primaries are supported
-// Display / tonemapping curve needs to be as if presenting to sRGB display or similar(e.g.Gamma 2.0)
-// There should be no banding in the input
-// There should be no high amplitude noise in the input
-// There should be no noise in the input that is not at input pixel granularity
-// For performance purposes, use 32bpp formats
-//------------------------------------------------------------------------------------------------------------------------------
-// Best to apply EASU at the end of the frame after tonemapping
-// but before film grain or composite of the UI.
-//------------------------------------------------------------------------------------------------------------------------------
-//==============================================================================================================================
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// CONSTANT SETUP
-//==============================================================================================================================
-// Call to setup required constant values (works on CPU or GPU).
-A_STATIC void FsrEasuCon(
-outAU4 con0,
-outAU4 con1,
-outAU4 con2,
-outAU4 con3,
-// This the rendered image resolution being upscaled
-AF1 inputViewportInPixelsX,
-AF1 inputViewportInPixelsY,
-// This is the resolution of the resource containing the input image (useful for dynamic resolution)
-AF1 inputSizeInPixelsX,
-AF1 inputSizeInPixelsY,
-// This is the display resolution which the input image gets upscaled to
-AF1 outputSizeInPixelsX,
-AF1 outputSizeInPixelsY){
- // Output integer position to a pixel position in viewport.
- con0[0]=AU1_AF1(inputViewportInPixelsX*ARcpF1(outputSizeInPixelsX));
- con0[1]=AU1_AF1(inputViewportInPixelsY*ARcpF1(outputSizeInPixelsY));
- con0[2]=AU1_AF1(AF1_(0.5)*inputViewportInPixelsX*ARcpF1(outputSizeInPixelsX)-AF1_(0.5));
- con0[3]=AU1_AF1(AF1_(0.5)*inputViewportInPixelsY*ARcpF1(outputSizeInPixelsY)-AF1_(0.5));
- // Viewport pixel position to normalized image space.
- // This is used to get upper-left of 'F' tap.
- con1[0]=AU1_AF1(ARcpF1(inputSizeInPixelsX));
- con1[1]=AU1_AF1(ARcpF1(inputSizeInPixelsY));
- // Centers of gather4, first offset from upper-left of 'F'.
- // +---+---+
- // | | |
- // +--(0)--+
- // | b | c |
- // +---F---+---+---+
- // | e | f | g | h |
- // +--(1)--+--(2)--+
- // | i | j | k | l |
- // +---+---+---+---+
- // | n | o |
- // +--(3)--+
- // | | |
- // +---+---+
- con1[2]=AU1_AF1(AF1_( 1.0)*ARcpF1(inputSizeInPixelsX));
- con1[3]=AU1_AF1(AF1_(-1.0)*ARcpF1(inputSizeInPixelsY));
- // These are from (0) instead of 'F'.
- con2[0]=AU1_AF1(AF1_(-1.0)*ARcpF1(inputSizeInPixelsX));
- con2[1]=AU1_AF1(AF1_( 2.0)*ARcpF1(inputSizeInPixelsY));
- con2[2]=AU1_AF1(AF1_( 1.0)*ARcpF1(inputSizeInPixelsX));
- con2[3]=AU1_AF1(AF1_( 2.0)*ARcpF1(inputSizeInPixelsY));
- con3[0]=AU1_AF1(AF1_( 0.0)*ARcpF1(inputSizeInPixelsX));
- con3[1]=AU1_AF1(AF1_( 4.0)*ARcpF1(inputSizeInPixelsY));
- con3[2]=con3[3]=0;}
-
-//If the an offset into the input image resource
-A_STATIC void FsrEasuConOffset(
- outAU4 con0,
- outAU4 con1,
- outAU4 con2,
- outAU4 con3,
- // This the rendered image resolution being upscaled
- AF1 inputViewportInPixelsX,
- AF1 inputViewportInPixelsY,
- // This is the resolution of the resource containing the input image (useful for dynamic resolution)
- AF1 inputSizeInPixelsX,
- AF1 inputSizeInPixelsY,
- // This is the display resolution which the input image gets upscaled to
- AF1 outputSizeInPixelsX,
- AF1 outputSizeInPixelsY,
- // This is the input image offset into the resource containing it (useful for dynamic resolution)
- AF1 inputOffsetInPixelsX,
- AF1 inputOffsetInPixelsY) {
- FsrEasuCon(con0, con1, con2, con3, inputViewportInPixelsX, inputViewportInPixelsY, inputSizeInPixelsX, inputSizeInPixelsY, outputSizeInPixelsX, outputSizeInPixelsY);
- con0[2] = AU1_AF1(AF1_(0.5) * inputViewportInPixelsX * ARcpF1(outputSizeInPixelsX) - AF1_(0.5) + inputOffsetInPixelsX);
- con0[3] = AU1_AF1(AF1_(0.5) * inputViewportInPixelsY * ARcpF1(outputSizeInPixelsY) - AF1_(0.5) + inputOffsetInPixelsY);
-}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// NON-PACKED 32-BIT VERSION
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(FSR_EASU_F)
- // Input callback prototypes, need to be implemented by calling shader
- //AF4 FsrEasuRF(AF2 p);
- //AF4 FsrEasuGF(AF2 p);
- //AF4 FsrEasuBF(AF2 p);
- //AF4 FsrEasuAF(AF2 p);
-//------------------------------------------------------------------------------------------------------------------------------
- // Filtering for a given tap for the scalar.
- void FsrEasuTapF(
- inout AF4 aC, // Accumulated color, with negative lobe.
- inout AF1 aW, // Accumulated weight.
- AF2 off, // Pixel offset from resolve position to tap.
- AF2 dir, // Gradient direction.
- AF2 len, // Length.
- AF1 lob, // Negative lobe strength.
- AF1 clp, // Clipping point.
- AF4 c){ // Tap color.
- // Rotate offset by direction.
- AF2 v;
- v.x=(off.x*( dir.x))+(off.y*dir.y);
- v.y=(off.x*(-dir.y))+(off.y*dir.x);
- // Anisotropy.
- v*=len;
- // Compute distance^2.
- AF1 d2=v.x*v.x+v.y*v.y;
- // Limit to the window as at corner, 2 taps can easily be outside.
- d2=min(d2,clp);
- // Approximation of lancos2 without sin() or rcp(), or sqrt() to get x.
- // (25/16 * (2/5 * x^2 - 1)^2 - (25/16 - 1)) * (1/4 * x^2 - 1)^2
- // |_______________________________________| |_______________|
- // base window
- // The general form of the 'base' is,
- // (a*(b*x^2-1)^2-(a-1))
- // Where 'a=1/(2*b-b^2)' and 'b' moves around the negative lobe.
- AF1 wB=AF1_(2.0/5.0)*d2+AF1_(-1.0);
- AF1 wA=lob*d2+AF1_(-1.0);
- wB*=wB;
- wA*=wA;
- wB=AF1_(25.0/16.0)*wB+AF1_(-(25.0/16.0-1.0));
- AF1 w=wB*wA;
- // Do weighted average.
- aC+=c*w;aW+=w;}
-//------------------------------------------------------------------------------------------------------------------------------
- // Accumulate direction and length.
- void FsrEasuSetF(
- inout AF2 dir,
- inout AF1 len,
- AF2 pp,
- AP1 biS,AP1 biT,AP1 biU,AP1 biV,
- AF1 lA,AF1 lB,AF1 lC,AF1 lD,AF1 lE){
- // Compute bilinear weight, branches factor out as predicates are compiler time immediates.
- // s t
- // u v
- AF1 w = AF1_(0.0);
- if(biS)w=(AF1_(1.0)-pp.x)*(AF1_(1.0)-pp.y);
- if(biT)w= pp.x *(AF1_(1.0)-pp.y);
- if(biU)w=(AF1_(1.0)-pp.x)* pp.y ;
- if(biV)w= pp.x * pp.y ;
- // Direction is the '+' diff.
- // a
- // b c d
- // e
- // Then takes magnitude from abs average of both sides of 'c'.
- // Length converts gradient reversal to 0, smoothly to non-reversal at 1, shaped, then adding horz and vert terms.
- AF1 dc=lD-lC;
- AF1 cb=lC-lB;
- AF1 lenX=max(abs(dc),abs(cb));
- lenX=APrxLoRcpF1(lenX);
- AF1 dirX=lD-lB;
- dir.x+=dirX*w;
- lenX=ASatF1(abs(dirX)*lenX);
- lenX*=lenX;
- len+=lenX*w;
- // Repeat for the y axis.
- AF1 ec=lE-lC;
- AF1 ca=lC-lA;
- AF1 lenY=max(abs(ec),abs(ca));
- lenY=APrxLoRcpF1(lenY);
- AF1 dirY=lE-lA;
- dir.y+=dirY*w;
- lenY=ASatF1(abs(dirY)*lenY);
- lenY*=lenY;
- len+=lenY*w;}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrEasuF(
- out AF4 pix,
- AU2 ip, // Integer pixel position in output.
- AU4 con0, // Constants generated by FsrEasuCon().
- AU4 con1,
- AU4 con2,
- AU4 con3){
-//------------------------------------------------------------------------------------------------------------------------------
- // Get position of 'f'.
- AF2 pp=AF2(ip)*AF2_AU2(con0.xy)+AF2_AU2(con0.zw);
- AF2 fp=floor(pp);
- pp-=fp;
-//------------------------------------------------------------------------------------------------------------------------------
- // 12-tap kernel.
- // b c
- // e f g h
- // i j k l
- // n o
- // Gather 4 ordering.
- // a b
- // r g
- // For packed FP16, need either {rg} or {ab} so using the following setup for gather in all versions,
- // a b <- unused (z)
- // r g
- // a b a b
- // r g r g
- // a b
- // r g <- unused (z)
- // Allowing dead-code removal to remove the 'z's.
- AF2 p0=fp*AF2_AU2(con1.xy)+AF2_AU2(con1.zw);
- // These are from p0 to avoid pulling two constants on pre-Navi hardware.
- AF2 p1=p0+AF2_AU2(con2.xy);
- AF2 p2=p0+AF2_AU2(con2.zw);
- AF2 p3=p0+AF2_AU2(con3.xy);
- AF4 bczzR=FsrEasuRF(p0);
- AF4 bczzG=FsrEasuGF(p0);
- AF4 bczzB=FsrEasuBF(p0);
- AF4 bczzA=FsrEasuAF(p0);
- AF4 ijfeR=FsrEasuRF(p1);
- AF4 ijfeG=FsrEasuGF(p1);
- AF4 ijfeB=FsrEasuBF(p1);
- AF4 ijfeA=FsrEasuAF(p1);
- AF4 klhgR=FsrEasuRF(p2);
- AF4 klhgG=FsrEasuGF(p2);
- AF4 klhgB=FsrEasuBF(p2);
- AF4 klhgA=FsrEasuAF(p2);
- AF4 zzonR=FsrEasuRF(p3);
- AF4 zzonG=FsrEasuGF(p3);
- AF4 zzonB=FsrEasuBF(p3);
- AF4 zzonA=FsrEasuAF(p3);
-//------------------------------------------------------------------------------------------------------------------------------
- // Simplest multi-channel approximate luma possible (luma times 2, in 2 FMA/MAD).
- AF4 bczzL=bczzB*AF4_(0.5)+(bczzR*AF4_(0.5)+bczzG);
- AF4 ijfeL=ijfeB*AF4_(0.5)+(ijfeR*AF4_(0.5)+ijfeG);
- AF4 klhgL=klhgB*AF4_(0.5)+(klhgR*AF4_(0.5)+klhgG);
- AF4 zzonL=zzonB*AF4_(0.5)+(zzonR*AF4_(0.5)+zzonG);
- // Rename.
- AF1 bL=bczzL.x;
- AF1 cL=bczzL.y;
- AF1 iL=ijfeL.x;
- AF1 jL=ijfeL.y;
- AF1 fL=ijfeL.z;
- AF1 eL=ijfeL.w;
- AF1 kL=klhgL.x;
- AF1 lL=klhgL.y;
- AF1 hL=klhgL.z;
- AF1 gL=klhgL.w;
- AF1 oL=zzonL.z;
- AF1 nL=zzonL.w;
- // Accumulate for bilinear interpolation.
- AF2 dir=AF2_(0.0);
- AF1 len=AF1_(0.0);
- FsrEasuSetF(dir,len,pp,true, false,false,false,bL,eL,fL,gL,jL);
- FsrEasuSetF(dir,len,pp,false,true ,false,false,cL,fL,gL,hL,kL);
- FsrEasuSetF(dir,len,pp,false,false,true ,false,fL,iL,jL,kL,nL);
- FsrEasuSetF(dir,len,pp,false,false,false,true ,gL,jL,kL,lL,oL);
-//------------------------------------------------------------------------------------------------------------------------------
- // Normalize with approximation, and cleanup close to zero.
- AF2 dir2=dir*dir;
- AF1 dirR=dir2.x+dir2.y;
- AP1 zro=dirR w = -m/(n+e+w+s)
-// 1 == (w*(n+e+w+s)+m)/(4*w+1) -> w = (1-m)/(n+e+w+s-4*1)
-// Then chooses the 'w' which results in no clipping, limits 'w', and multiplies by the 'sharp' amount.
-// This solution above has issues with MSAA input as the steps along the gradient cause edge detection issues.
-// So RCAS uses 4x the maximum and 4x the minimum (depending on equation)in place of the individual taps.
-// As well as switching from 'm' to either the minimum or maximum (depending on side), to help in energy conservation.
-// This stabilizes RCAS.
-// RCAS does a simple highpass which is normalized against the local contrast then shaped,
-// 0.25
-// 0.25 -1 0.25
-// 0.25
-// This is used as a noise detection filter, to reduce the effect of RCAS on grain, and focus on real edges.
-//
-// GLSL example for the required callbacks :
-//
-// AH4 FsrRcasLoadH(ASW2 p){return AH4(imageLoad(imgSrc,ASU2(p)));}
-// void FsrRcasInputH(inout AH1 r,inout AH1 g,inout AH1 b)
-// {
-// //do any simple input color conversions here or leave empty if none needed
-// }
-//
-// FsrRcasCon need to be called from the CPU or GPU to set up constants.
-// Including a GPU example here, the 'con' value would be stored out to a constant buffer.
-//
-// AU4 con;
-// FsrRcasCon(con,
-// 0.0); // The scale is {0.0 := maximum sharpness, to N>0, where N is the number of stops (halving) of the reduction of sharpness}.
-// ---------------
-// RCAS sharpening supports a CAS-like pass-through alpha via,
-// #define FSR_RCAS_PASSTHROUGH_ALPHA 1
-// RCAS also supports a define to enable a more expensive path to avoid some sharpening of noise.
-// Would suggest it is better to apply film grain after RCAS sharpening (and after scaling) instead of using this define,
-// #define FSR_RCAS_DENOISE 1
-//==============================================================================================================================
-// This is set at the limit of providing unnatural results for sharpening.
-#define FSR_RCAS_LIMIT (0.25-(1.0/16.0))
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// CONSTANT SETUP
-//==============================================================================================================================
-// Call to setup required constant values (works on CPU or GPU).
-A_STATIC void FsrRcasCon(
-outAU4 con,
-// The scale is {0.0 := maximum, to N>0, where N is the number of stops (halving) of the reduction of sharpness}.
-AF1 sharpness){
- // Transform from stops to linear value.
- sharpness=AExp2F1(-sharpness);
- varAF2(hSharp)=initAF2(sharpness,sharpness);
- con[0]=AU1_AF1(sharpness);
- con[1]=AU1_AH2_AF2(hSharp);
- con[2]=0;
- con[3]=0;}
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// NON-PACKED 32-BIT VERSION
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(FSR_RCAS_F)
- // Input callback prototypes that need to be implemented by calling shader
- //AF4 FsrRcasLoadF(ASU2 p);
- //void FsrRcasInputF(inout AF1 r,inout AF1 g,inout AF1 b);
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrRcasF(
- out AF1 pixR, // Output values, non-vector so port between RcasFilter() and RcasFilterH() is easy.
- out AF1 pixG,
- out AF1 pixB,
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- out AF1 pixA,
- #endif
- AU2 ip, // Integer pixel position in output.
- AU4 con){ // Constant generated by RcasSetup().
- // Algorithm uses minimal 3x3 pixel neighborhood.
- // b
- // d e f
- // h
- ASU2 sp=ASU2(ip);
- AF3 b=FsrRcasLoadF(sp+ASU2( 0,-1)).rgb;
- AF3 d=FsrRcasLoadF(sp+ASU2(-1, 0)).rgb;
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- AF4 ee=FsrRcasLoadF(sp);
- AF3 e=ee.rgb;pixA=ee.a;
- #else
- AF3 e=FsrRcasLoadF(sp).rgb;
- #endif
- AF3 f=FsrRcasLoadF(sp+ASU2( 1, 0)).rgb;
- AF3 h=FsrRcasLoadF(sp+ASU2( 0, 1)).rgb;
- // Rename (32-bit) or regroup (16-bit).
- AF1 bR=b.r;
- AF1 bG=b.g;
- AF1 bB=b.b;
- AF1 dR=d.r;
- AF1 dG=d.g;
- AF1 dB=d.b;
- AF1 eR=e.r;
- AF1 eG=e.g;
- AF1 eB=e.b;
- AF1 fR=f.r;
- AF1 fG=f.g;
- AF1 fB=f.b;
- AF1 hR=h.r;
- AF1 hG=h.g;
- AF1 hB=h.b;
- // Run optional input transform.
- FsrRcasInputF(bR,bG,bB);
- FsrRcasInputF(dR,dG,dB);
- FsrRcasInputF(eR,eG,eB);
- FsrRcasInputF(fR,fG,fB);
- FsrRcasInputF(hR,hG,hB);
- // Luma times 2.
- AF1 bL=bB*AF1_(0.5)+(bR*AF1_(0.5)+bG);
- AF1 dL=dB*AF1_(0.5)+(dR*AF1_(0.5)+dG);
- AF1 eL=eB*AF1_(0.5)+(eR*AF1_(0.5)+eG);
- AF1 fL=fB*AF1_(0.5)+(fR*AF1_(0.5)+fG);
- AF1 hL=hB*AF1_(0.5)+(hR*AF1_(0.5)+hG);
- // Noise detection.
- AF1 nz=AF1_(0.25)*bL+AF1_(0.25)*dL+AF1_(0.25)*fL+AF1_(0.25)*hL-eL;
- nz=ASatF1(abs(nz)*APrxMedRcpF1(AMax3F1(AMax3F1(bL,dL,eL),fL,hL)-AMin3F1(AMin3F1(bL,dL,eL),fL,hL)));
- nz=AF1_(-0.5)*nz+AF1_(1.0);
- // Min and max of ring.
- AF1 mn4R=min(AMin3F1(bR,dR,fR),hR);
- AF1 mn4G=min(AMin3F1(bG,dG,fG),hG);
- AF1 mn4B=min(AMin3F1(bB,dB,fB),hB);
- AF1 mx4R=max(AMax3F1(bR,dR,fR),hR);
- AF1 mx4G=max(AMax3F1(bG,dG,fG),hG);
- AF1 mx4B=max(AMax3F1(bB,dB,fB),hB);
- // Immediate constants for peak range.
- AF2 peakC=AF2(1.0,-1.0*4.0);
- // Limiters, these need to be high precision RCPs.
- AF1 hitMinR=min(mn4R,eR)*ARcpF1(AF1_(4.0)*mx4R);
- AF1 hitMinG=min(mn4G,eG)*ARcpF1(AF1_(4.0)*mx4G);
- AF1 hitMinB=min(mn4B,eB)*ARcpF1(AF1_(4.0)*mx4B);
- AF1 hitMaxR=(peakC.x-max(mx4R,eR))*ARcpF1(AF1_(4.0)*mn4R+peakC.y);
- AF1 hitMaxG=(peakC.x-max(mx4G,eG))*ARcpF1(AF1_(4.0)*mn4G+peakC.y);
- AF1 hitMaxB=(peakC.x-max(mx4B,eB))*ARcpF1(AF1_(4.0)*mn4B+peakC.y);
- AF1 lobeR=max(-hitMinR,hitMaxR);
- AF1 lobeG=max(-hitMinG,hitMaxG);
- AF1 lobeB=max(-hitMinB,hitMaxB);
- AF1 lobe=max(AF1_(-FSR_RCAS_LIMIT),min(AMax3F1(lobeR,lobeG,lobeB),AF1_(0.0)))*AF1_AU1(con.x);
- // Apply noise removal.
- #ifdef FSR_RCAS_DENOISE
- lobe*=nz;
- #endif
- // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes.
- AF1 rcpL=APrxMedRcpF1(AF1_(4.0)*lobe+AF1_(1.0));
- pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL;
- pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL;
- pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL;
- return;}
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// NON-PACKED 16-BIT VERSION
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(A_HALF)&&defined(FSR_RCAS_H)
- // Input callback prototypes that need to be implemented by calling shader
- //AH4 FsrRcasLoadH(ASW2 p);
- //void FsrRcasInputH(inout AH1 r,inout AH1 g,inout AH1 b);
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrRcasH(
- out AH1 pixR, // Output values, non-vector so port between RcasFilter() and RcasFilterH() is easy.
- out AH1 pixG,
- out AH1 pixB,
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- out AH1 pixA,
- #endif
- AU2 ip, // Integer pixel position in output.
- AU4 con){ // Constant generated by RcasSetup().
- // Sharpening algorithm uses minimal 3x3 pixel neighborhood.
- // b
- // d e f
- // h
- ASW2 sp=ASW2(ip);
- AH3 b=FsrRcasLoadH(sp+ASW2( 0,-1)).rgb;
- AH3 d=FsrRcasLoadH(sp+ASW2(-1, 0)).rgb;
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- AH4 ee=FsrRcasLoadH(sp);
- AH3 e=ee.rgb;pixA=ee.a;
- #else
- AH3 e=FsrRcasLoadH(sp).rgb;
- #endif
- AH3 f=FsrRcasLoadH(sp+ASW2( 1, 0)).rgb;
- AH3 h=FsrRcasLoadH(sp+ASW2( 0, 1)).rgb;
- // Rename (32-bit) or regroup (16-bit).
- AH1 bR=b.r;
- AH1 bG=b.g;
- AH1 bB=b.b;
- AH1 dR=d.r;
- AH1 dG=d.g;
- AH1 dB=d.b;
- AH1 eR=e.r;
- AH1 eG=e.g;
- AH1 eB=e.b;
- AH1 fR=f.r;
- AH1 fG=f.g;
- AH1 fB=f.b;
- AH1 hR=h.r;
- AH1 hG=h.g;
- AH1 hB=h.b;
- // Run optional input transform.
- FsrRcasInputH(bR,bG,bB);
- FsrRcasInputH(dR,dG,dB);
- FsrRcasInputH(eR,eG,eB);
- FsrRcasInputH(fR,fG,fB);
- FsrRcasInputH(hR,hG,hB);
- // Luma times 2.
- AH1 bL=bB*AH1_(0.5)+(bR*AH1_(0.5)+bG);
- AH1 dL=dB*AH1_(0.5)+(dR*AH1_(0.5)+dG);
- AH1 eL=eB*AH1_(0.5)+(eR*AH1_(0.5)+eG);
- AH1 fL=fB*AH1_(0.5)+(fR*AH1_(0.5)+fG);
- AH1 hL=hB*AH1_(0.5)+(hR*AH1_(0.5)+hG);
- // Noise detection.
- AH1 nz=AH1_(0.25)*bL+AH1_(0.25)*dL+AH1_(0.25)*fL+AH1_(0.25)*hL-eL;
- nz=ASatH1(abs(nz)*APrxMedRcpH1(AMax3H1(AMax3H1(bL,dL,eL),fL,hL)-AMin3H1(AMin3H1(bL,dL,eL),fL,hL)));
- nz=AH1_(-0.5)*nz+AH1_(1.0);
- // Min and max of ring.
- AH1 mn4R=min(AMin3H1(bR,dR,fR),hR);
- AH1 mn4G=min(AMin3H1(bG,dG,fG),hG);
- AH1 mn4B=min(AMin3H1(bB,dB,fB),hB);
- AH1 mx4R=max(AMax3H1(bR,dR,fR),hR);
- AH1 mx4G=max(AMax3H1(bG,dG,fG),hG);
- AH1 mx4B=max(AMax3H1(bB,dB,fB),hB);
- // Immediate constants for peak range.
- AH2 peakC=AH2(1.0,-1.0*4.0);
- // Limiters, these need to be high precision RCPs.
- AH1 hitMinR=min(mn4R,eR)*ARcpH1(AH1_(4.0)*mx4R);
- AH1 hitMinG=min(mn4G,eG)*ARcpH1(AH1_(4.0)*mx4G);
- AH1 hitMinB=min(mn4B,eB)*ARcpH1(AH1_(4.0)*mx4B);
- AH1 hitMaxR=(peakC.x-max(mx4R,eR))*ARcpH1(AH1_(4.0)*mn4R+peakC.y);
- AH1 hitMaxG=(peakC.x-max(mx4G,eG))*ARcpH1(AH1_(4.0)*mn4G+peakC.y);
- AH1 hitMaxB=(peakC.x-max(mx4B,eB))*ARcpH1(AH1_(4.0)*mn4B+peakC.y);
- AH1 lobeR=max(-hitMinR,hitMaxR);
- AH1 lobeG=max(-hitMinG,hitMaxG);
- AH1 lobeB=max(-hitMinB,hitMaxB);
- AH1 lobe=max(AH1_(-FSR_RCAS_LIMIT),min(AMax3H1(lobeR,lobeG,lobeB),AH1_(0.0)))*AH2_AU1(con.y).x;
- // Apply noise removal.
- #ifdef FSR_RCAS_DENOISE
- lobe*=nz;
- #endif
- // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes.
- AH1 rcpL=APrxMedRcpH1(AH1_(4.0)*lobe+AH1_(1.0));
- pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL;
- pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL;
- pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL;}
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-// PACKED 16-BIT VERSION
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(A_HALF)&&defined(FSR_RCAS_HX2)
- // Input callback prototypes that need to be implemented by the calling shader
- //AH4 FsrRcasLoadHx2(ASW2 p);
- //void FsrRcasInputHx2(inout AH2 r,inout AH2 g,inout AH2 b);
-//------------------------------------------------------------------------------------------------------------------------------
- // Can be used to convert from packed Structures of Arrays to Arrays of Structures for store.
- void FsrRcasDepackHx2(out AH4 pix0,out AH4 pix1,AH2 pixR,AH2 pixG,AH2 pixB){
- #ifdef A_HLSL
- // Invoke a slower path for DX only, since it won't allow uninitialized values.
- pix0.a=pix1.a=0.0;
- #endif
- pix0.rgb=AH3(pixR.x,pixG.x,pixB.x);
- pix1.rgb=AH3(pixR.y,pixG.y,pixB.y);}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrRcasHx2(
- // Output values are for 2 8x8 tiles in a 16x8 region.
- // pix.x = left 8x8 tile
- // pix.y = right 8x8 tile
- // This enables later processing to easily be packed as well.
- out AH2 pixR,
- out AH2 pixG,
- out AH2 pixB,
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- out AH2 pixA,
- #endif
- AU2 ip, // Integer pixel position in output.
- AU4 con){ // Constant generated by RcasSetup().
- // No scaling algorithm uses minimal 3x3 pixel neighborhood.
- ASW2 sp0=ASW2(ip);
- AH3 b0=FsrRcasLoadHx2(sp0+ASW2( 0,-1)).rgb;
- AH3 d0=FsrRcasLoadHx2(sp0+ASW2(-1, 0)).rgb;
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- AH4 ee0=FsrRcasLoadHx2(sp0);
- AH3 e0=ee0.rgb;pixA.r=ee0.a;
- #else
- AH3 e0=FsrRcasLoadHx2(sp0).rgb;
- #endif
- AH3 f0=FsrRcasLoadHx2(sp0+ASW2( 1, 0)).rgb;
- AH3 h0=FsrRcasLoadHx2(sp0+ASW2( 0, 1)).rgb;
- ASW2 sp1=sp0+ASW2(8,0);
- AH3 b1=FsrRcasLoadHx2(sp1+ASW2( 0,-1)).rgb;
- AH3 d1=FsrRcasLoadHx2(sp1+ASW2(-1, 0)).rgb;
- #ifdef FSR_RCAS_PASSTHROUGH_ALPHA
- AH4 ee1=FsrRcasLoadHx2(sp1);
- AH3 e1=ee1.rgb;pixA.g=ee1.a;
- #else
- AH3 e1=FsrRcasLoadHx2(sp1).rgb;
- #endif
- AH3 f1=FsrRcasLoadHx2(sp1+ASW2( 1, 0)).rgb;
- AH3 h1=FsrRcasLoadHx2(sp1+ASW2( 0, 1)).rgb;
- // Arrays of Structures to Structures of Arrays conversion.
- AH2 bR=AH2(b0.r,b1.r);
- AH2 bG=AH2(b0.g,b1.g);
- AH2 bB=AH2(b0.b,b1.b);
- AH2 dR=AH2(d0.r,d1.r);
- AH2 dG=AH2(d0.g,d1.g);
- AH2 dB=AH2(d0.b,d1.b);
- AH2 eR=AH2(e0.r,e1.r);
- AH2 eG=AH2(e0.g,e1.g);
- AH2 eB=AH2(e0.b,e1.b);
- AH2 fR=AH2(f0.r,f1.r);
- AH2 fG=AH2(f0.g,f1.g);
- AH2 fB=AH2(f0.b,f1.b);
- AH2 hR=AH2(h0.r,h1.r);
- AH2 hG=AH2(h0.g,h1.g);
- AH2 hB=AH2(h0.b,h1.b);
- // Run optional input transform.
- FsrRcasInputHx2(bR,bG,bB);
- FsrRcasInputHx2(dR,dG,dB);
- FsrRcasInputHx2(eR,eG,eB);
- FsrRcasInputHx2(fR,fG,fB);
- FsrRcasInputHx2(hR,hG,hB);
- // Luma times 2.
- AH2 bL=bB*AH2_(0.5)+(bR*AH2_(0.5)+bG);
- AH2 dL=dB*AH2_(0.5)+(dR*AH2_(0.5)+dG);
- AH2 eL=eB*AH2_(0.5)+(eR*AH2_(0.5)+eG);
- AH2 fL=fB*AH2_(0.5)+(fR*AH2_(0.5)+fG);
- AH2 hL=hB*AH2_(0.5)+(hR*AH2_(0.5)+hG);
- // Noise detection.
- AH2 nz=AH2_(0.25)*bL+AH2_(0.25)*dL+AH2_(0.25)*fL+AH2_(0.25)*hL-eL;
- nz=ASatH2(abs(nz)*APrxMedRcpH2(AMax3H2(AMax3H2(bL,dL,eL),fL,hL)-AMin3H2(AMin3H2(bL,dL,eL),fL,hL)));
- nz=AH2_(-0.5)*nz+AH2_(1.0);
- // Min and max of ring.
- AH2 mn4R=min(AMin3H2(bR,dR,fR),hR);
- AH2 mn4G=min(AMin3H2(bG,dG,fG),hG);
- AH2 mn4B=min(AMin3H2(bB,dB,fB),hB);
- AH2 mx4R=max(AMax3H2(bR,dR,fR),hR);
- AH2 mx4G=max(AMax3H2(bG,dG,fG),hG);
- AH2 mx4B=max(AMax3H2(bB,dB,fB),hB);
- // Immediate constants for peak range.
- AH2 peakC=AH2(1.0,-1.0*4.0);
- // Limiters, these need to be high precision RCPs.
- AH2 hitMinR=min(mn4R,eR)*ARcpH2(AH2_(4.0)*mx4R);
- AH2 hitMinG=min(mn4G,eG)*ARcpH2(AH2_(4.0)*mx4G);
- AH2 hitMinB=min(mn4B,eB)*ARcpH2(AH2_(4.0)*mx4B);
- AH2 hitMaxR=(peakC.x-max(mx4R,eR))*ARcpH2(AH2_(4.0)*mn4R+peakC.y);
- AH2 hitMaxG=(peakC.x-max(mx4G,eG))*ARcpH2(AH2_(4.0)*mn4G+peakC.y);
- AH2 hitMaxB=(peakC.x-max(mx4B,eB))*ARcpH2(AH2_(4.0)*mn4B+peakC.y);
- AH2 lobeR=max(-hitMinR,hitMaxR);
- AH2 lobeG=max(-hitMinG,hitMaxG);
- AH2 lobeB=max(-hitMinB,hitMaxB);
- AH2 lobe=max(AH2_(-FSR_RCAS_LIMIT),min(AMax3H2(lobeR,lobeG,lobeB),AH2_(0.0)))*AH2_(AH2_AU1(con.y).x);
- // Apply noise removal.
- #ifdef FSR_RCAS_DENOISE
- lobe*=nz;
- #endif
- // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes.
- AH2 rcpL=APrxMedRcpH2(AH2_(4.0)*lobe+AH2_(1.0));
- pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL;
- pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL;
- pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL;}
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-// FSR - [LFGA] LINEAR FILM GRAIN APPLICATOR
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// Adding output-resolution film grain after scaling is a good way to mask both rendering and scaling artifacts.
-// Suggest using tiled blue noise as film grain input, with peak noise frequency set for a specific look and feel.
-// The 'Lfga*()' functions provide a convenient way to introduce grain.
-// These functions limit grain based on distance to signal limits.
-// This is done so that the grain is temporally energy preserving, and thus won't modify image tonality.
-// Grain application should be done in a linear colorspace.
-// The grain should be temporally changing, but have a temporal sum per pixel that adds to zero (non-biased).
-//------------------------------------------------------------------------------------------------------------------------------
-// Usage,
-// FsrLfga*(
-// color, // In/out linear colorspace color {0 to 1} ranged.
-// grain, // Per pixel grain texture value {-0.5 to 0.5} ranged, input is 3-channel to support colored grain.
-// amount); // Amount of grain (0 to 1} ranged.
-//------------------------------------------------------------------------------------------------------------------------------
-// Example if grain texture is monochrome: 'FsrLfgaF(color,AF3_(grain),amount)'
-//==============================================================================================================================
-#if defined(A_GPU)
- // Maximum grain is the minimum distance to the signal limit.
- void FsrLfgaF(inout AF3 c,AF3 t,AF1 a){c+=(t*AF3_(a))*min(AF3_(1.0)-c,c);}
-#endif
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(A_HALF)
- // Half precision version (slower).
- void FsrLfgaH(inout AH3 c,AH3 t,AH1 a){c+=(t*AH3_(a))*min(AH3_(1.0)-c,c);}
-//------------------------------------------------------------------------------------------------------------------------------
- // Packed half precision version (faster).
- void FsrLfgaHx2(inout AH2 cR,inout AH2 cG,inout AH2 cB,AH2 tR,AH2 tG,AH2 tB,AH1 a){
- cR+=(tR*AH2_(a))*min(AH2_(1.0)-cR,cR);cG+=(tG*AH2_(a))*min(AH2_(1.0)-cG,cG);cB+=(tB*AH2_(a))*min(AH2_(1.0)-cB,cB);}
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-// FSR - [SRTM] SIMPLE REVERSIBLE TONE-MAPPER
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// This provides a way to take linear HDR color {0 to FP16_MAX} and convert it into a temporary {0 to 1} ranged post-tonemapped linear.
-// The tonemapper preserves RGB ratio, which helps maintain HDR color bleed during filtering.
-//------------------------------------------------------------------------------------------------------------------------------
-// Reversible tonemapper usage,
-// FsrSrtm*(color); // {0 to FP16_MAX} converted to {0 to 1}.
-// FsrSrtmInv*(color); // {0 to 1} converted into {0 to 32768, output peak safe for FP16}.
-//==============================================================================================================================
-#if defined(A_GPU)
- void FsrSrtmF(inout AF3 c){c*=AF3_(ARcpF1(AMax3F1(c.r,c.g,c.b)+AF1_(1.0)));}
- // The extra max solves the c=1.0 case (which is a /0).
- void FsrSrtmInvF(inout AF3 c){c*=AF3_(ARcpF1(max(AF1_(1.0/32768.0),AF1_(1.0)-AMax3F1(c.r,c.g,c.b))));}
-#endif
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(A_HALF)
- void FsrSrtmH(inout AH3 c){c*=AH3_(ARcpH1(AMax3H1(c.r,c.g,c.b)+AH1_(1.0)));}
- void FsrSrtmInvH(inout AH3 c){c*=AH3_(ARcpH1(max(AH1_(1.0/32768.0),AH1_(1.0)-AMax3H1(c.r,c.g,c.b))));}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrSrtmHx2(inout AH2 cR,inout AH2 cG,inout AH2 cB){
- AH2 rcp=ARcpH2(AMax3H2(cR,cG,cB)+AH2_(1.0));cR*=rcp;cG*=rcp;cB*=rcp;}
- void FsrSrtmInvHx2(inout AH2 cR,inout AH2 cG,inout AH2 cB){
- AH2 rcp=ARcpH2(max(AH2_(1.0/32768.0),AH2_(1.0)-AMax3H2(cR,cG,cB)));cR*=rcp;cG*=rcp;cB*=rcp;}
-#endif
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//_____________________________________________________________/\_______________________________________________________________
-//==============================================================================================================================
-//
-// FSR - [TEPD] TEMPORAL ENERGY PRESERVING DITHER
-//
-//------------------------------------------------------------------------------------------------------------------------------
-// Temporally energy preserving dithered {0 to 1} linear to gamma 2.0 conversion.
-// Gamma 2.0 is used so that the conversion back to linear is just to square the color.
-// The conversion comes in 8-bit and 10-bit modes, designed for output to 8-bit UNORM or 10:10:10:2 respectively.
-// Given good non-biased temporal blue noise as dither input,
-// the output dither will temporally conserve energy.
-// This is done by choosing the linear nearest step point instead of perceptual nearest.
-// See code below for details.
-//------------------------------------------------------------------------------------------------------------------------------
-// DX SPEC RULES FOR FLOAT->UNORM 8-BIT CONVERSION
-// ===============================================
-// - Output is 'uint(floor(saturate(n)*255.0+0.5))'.
-// - Thus rounding is to nearest.
-// - NaN gets converted to zero.
-// - INF is clamped to {0.0 to 1.0}.
-//==============================================================================================================================
-#if defined(A_GPU)
- // Hand tuned integer position to dither value, with more values than simple checkerboard.
- // Only 32-bit has enough precision for this compddation.
- // Output is {0 to <1}.
- AF1 FsrTepdDitF(AU2 p,AU1 f){
- AF1 x=AF1_(p.x+f);
- AF1 y=AF1_(p.y);
- // The 1.61803 golden ratio.
- AF1 a=AF1_((1.0+sqrt(5.0))/2.0);
- // Number designed to provide a good visual pattern.
- AF1 b=AF1_(1.0/3.69);
- x=x*a+(y*b);
- return AFractF1(x);}
-//------------------------------------------------------------------------------------------------------------------------------
- // This version is 8-bit gamma 2.0.
- // The 'c' input is {0 to 1}.
- // Output is {0 to 1} ready for image store.
- void FsrTepdC8F(inout AF3 c,AF1 dit){
- AF3 n=sqrt(c);
- n=floor(n*AF3_(255.0))*AF3_(1.0/255.0);
- AF3 a=n*n;
- AF3 b=n+AF3_(1.0/255.0);b=b*b;
- // Ratio of 'a' to 'b' required to produce 'c'.
- // APrxLoRcpF1() won't work here (at least for very high dynamic ranges).
- // APrxMedRcpF1() is an IADD,FMA,MUL.
- AF3 r=(c-b)*APrxMedRcpF3(a-b);
- // Use the ratio as a cutoff to choose 'a' or 'b'.
- // AGtZeroF1() is a MUL.
- c=ASatF3(n+AGtZeroF3(AF3_(dit)-r)*AF3_(1.0/255.0));}
-//------------------------------------------------------------------------------------------------------------------------------
- // This version is 10-bit gamma 2.0.
- // The 'c' input is {0 to 1}.
- // Output is {0 to 1} ready for image store.
- void FsrTepdC10F(inout AF3 c,AF1 dit){
- AF3 n=sqrt(c);
- n=floor(n*AF3_(1023.0))*AF3_(1.0/1023.0);
- AF3 a=n*n;
- AF3 b=n+AF3_(1.0/1023.0);b=b*b;
- AF3 r=(c-b)*APrxMedRcpF3(a-b);
- c=ASatF3(n+AGtZeroF3(AF3_(dit)-r)*AF3_(1.0/1023.0));}
-#endif
-//==============================================================================================================================
-#if defined(A_GPU)&&defined(A_HALF)
- AH1 FsrTepdDitH(AU2 p,AU1 f){
- AF1 x=AF1_(p.x+f);
- AF1 y=AF1_(p.y);
- AF1 a=AF1_((1.0+sqrt(5.0))/2.0);
- AF1 b=AF1_(1.0/3.69);
- x=x*a+(y*b);
- return AH1(AFractF1(x));}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrTepdC8H(inout AH3 c,AH1 dit){
- AH3 n=sqrt(c);
- n=floor(n*AH3_(255.0))*AH3_(1.0/255.0);
- AH3 a=n*n;
- AH3 b=n+AH3_(1.0/255.0);b=b*b;
- AH3 r=(c-b)*APrxMedRcpH3(a-b);
- c=ASatH3(n+AGtZeroH3(AH3_(dit)-r)*AH3_(1.0/255.0));}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrTepdC10H(inout AH3 c,AH1 dit){
- AH3 n=sqrt(c);
- n=floor(n*AH3_(1023.0))*AH3_(1.0/1023.0);
- AH3 a=n*n;
- AH3 b=n+AH3_(1.0/1023.0);b=b*b;
- AH3 r=(c-b)*APrxMedRcpH3(a-b);
- c=ASatH3(n+AGtZeroH3(AH3_(dit)-r)*AH3_(1.0/1023.0));}
-//==============================================================================================================================
- // This computes dither for positions 'p' and 'p+{8,0}'.
- AH2 FsrTepdDitHx2(AU2 p,AU1 f){
- AF2 x;
- x.x=AF1_(p.x+f);
- x.y=x.x+AF1_(8.0);
- AF1 y=AF1_(p.y);
- AF1 a=AF1_((1.0+sqrt(5.0))/2.0);
- AF1 b=AF1_(1.0/3.69);
- x=x*AF2_(a)+AF2_(y*b);
- return AH2(AFractF2(x));}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrTepdC8Hx2(inout AH2 cR,inout AH2 cG,inout AH2 cB,AH2 dit){
- AH2 nR=sqrt(cR);
- AH2 nG=sqrt(cG);
- AH2 nB=sqrt(cB);
- nR=floor(nR*AH2_(255.0))*AH2_(1.0/255.0);
- nG=floor(nG*AH2_(255.0))*AH2_(1.0/255.0);
- nB=floor(nB*AH2_(255.0))*AH2_(1.0/255.0);
- AH2 aR=nR*nR;
- AH2 aG=nG*nG;
- AH2 aB=nB*nB;
- AH2 bR=nR+AH2_(1.0/255.0);bR=bR*bR;
- AH2 bG=nG+AH2_(1.0/255.0);bG=bG*bG;
- AH2 bB=nB+AH2_(1.0/255.0);bB=bB*bB;
- AH2 rR=(cR-bR)*APrxMedRcpH2(aR-bR);
- AH2 rG=(cG-bG)*APrxMedRcpH2(aG-bG);
- AH2 rB=(cB-bB)*APrxMedRcpH2(aB-bB);
- cR=ASatH2(nR+AGtZeroH2(dit-rR)*AH2_(1.0/255.0));
- cG=ASatH2(nG+AGtZeroH2(dit-rG)*AH2_(1.0/255.0));
- cB=ASatH2(nB+AGtZeroH2(dit-rB)*AH2_(1.0/255.0));}
-//------------------------------------------------------------------------------------------------------------------------------
- void FsrTepdC10Hx2(inout AH2 cR,inout AH2 cG,inout AH2 cB,AH2 dit){
- AH2 nR=sqrt(cR);
- AH2 nG=sqrt(cG);
- AH2 nB=sqrt(cB);
- nR=floor(nR*AH2_(1023.0))*AH2_(1.0/1023.0);
- nG=floor(nG*AH2_(1023.0))*AH2_(1.0/1023.0);
- nB=floor(nB*AH2_(1023.0))*AH2_(1.0/1023.0);
- AH2 aR=nR*nR;
- AH2 aG=nG*nG;
- AH2 aB=nB*nB;
- AH2 bR=nR+AH2_(1.0/1023.0);bR=bR*bR;
- AH2 bG=nG+AH2_(1.0/1023.0);bG=bG*bG;
- AH2 bB=nB+AH2_(1.0/1023.0);bB=bB*bB;
- AH2 rR=(cR-bR)*APrxMedRcpH2(aR-bR);
- AH2 rG=(cG-bG)*APrxMedRcpH2(aG-bG);
- AH2 rB=(cB-bB)*APrxMedRcpH2(aB-bB);
- cR=ASatH2(nR+AGtZeroH2(dit-rR)*AH2_(1.0/1023.0));
- cG=ASatH2(nG+AGtZeroH2(dit-rG)*AH2_(1.0/1023.0));
- cB=ASatH2(nB+AGtZeroH2(dit-rB)*AH2_(1.0/1023.0));}
-#endif
diff --git a/Plugins/MobileFSR/Source/MobileFSR/MobileFSR.Build.cs b/Plugins/MobileFSR/Source/MobileFSR/MobileFSR.Build.cs
deleted file mode 100644
index 2e320b7..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/MobileFSR.Build.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-using System.IO;
-using UnrealBuildTool;
-
-public class MobileFSR : ModuleRules
-{
- public MobileFSR(ReadOnlyTargetRules Target) : base(Target)
- {
- PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
-
- PrivateIncludePaths.AddRange(
- new string[] {
- Path.Combine(GetModuleDirectory("Renderer"), "Private"),
- Path.Combine(GetModuleDirectory("Renderer"), "Internal"),
- PluginDirectory + "/Shaders/Private",
- }
- );
-
- PrivateDependencyModuleNames.AddRange(
- new string[]
- {
- "Core",
- "Engine",
- "Projects",
- "RenderCore",
- "Renderer",
- "RHI",
- }
- );
-
-
- PrecompileForTargets = PrecompileTargetsType.Any;
- }
-}
diff --git a/Plugins/MobileFSR/Source/MobileFSR/MobileFSR_APL.xml b/Plugins/MobileFSR/Source/MobileFSR/MobileFSR_APL.xml
deleted file mode 100644
index 9757b05..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/MobileFSR_APL.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRModule.cpp b/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRModule.cpp
deleted file mode 100644
index d8bb394..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRModule.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#include "MobileFSRModule.h"
-
-#include "ShaderCore.h"
-#include "Interfaces/IPluginManager.h"
-#include "Misc/Paths.h"
-#include "MobileFSRViewExtension.h"
-#include "Modules/ModuleManager.h"
-
-#define LOCTEXT_NAMESPACE "MobileFSR"
-
-DEFINE_LOG_CATEGORY(LogMobileFSR);
-
-void FMobileFSRModule::StartupModule()
-{
- FString PluginShaderDir = FPaths::Combine(IPluginManager::Get().FindPlugin(TEXT("MobileFSR"))->GetBaseDir(), TEXT("Shaders"));
- AddShaderSourceDirectoryMapping(TEXT("/Plugin/MobileFSR"), PluginShaderDir);
-
- FCoreDelegates::OnPostEngineInit.AddRaw(this, &FMobileFSRModule::OnPostEngineInit);
-
- UE_LOG(LogMobileFSR, Log, TEXT("Mobile FSR Started"));
-}
-
-void FMobileFSRModule::OnPostEngineInit()
-{
- ViewExtension = FSceneViewExtensions::NewExtension();
-
- UE_LOG(LogMobileFSR, Log, TEXT("Mobile FSR OnPostEngineInit"));
-}
-
-void FMobileFSRModule::ShutdownModule()
-{
- ViewExtension = nullptr;
- FCoreDelegates::OnPostEngineInit.RemoveAll(this);
-
- UE_LOG(LogMobileFSR, Log, TEXT("Mobile FSR Shutdown"));
-}
-
-#undef LOCTEXT_NAMESPACE
-
-IMPLEMENT_MODULE(FMobileFSRModule, MobileFSR)
diff --git a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRUpscaler.cpp b/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRUpscaler.cpp
deleted file mode 100644
index b10dc6c..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRUpscaler.cpp
+++ /dev/null
@@ -1,462 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#include "MobileFSRUpscaler.h"
-#include "DataDrivenShaderPlatformInfo.h"
-#include "ScenePrivate.h"
-
-namespace MobileFSRPrivate
-{
- bool IsPostProcessingWithAlphaChannelSupported()
- {
- static IConsoleVariable* CVarPropagateAlpha = IConsoleManager::Get().FindConsoleVariable(TEXT("r.PostProcessing.PropagateAlpha"));
- return CVarPropagateAlpha ? CVarPropagateAlpha->GetBool() : false;
- }
-}
-
-#define A_CPU 1
-// ffx_a.ush will override these definitions
-#ifdef A_STATIC
-#undef A_STATIC
-#endif
-#ifdef A_RESTRICT
-#undef A_RESTRICT
-#endif
-#include "ffx_a.ush"
-#include "ffx_fsr1.ush"
-
-
-//////////////////////////////////////////////////////////////////////////
-//! FSR
-//////////////////////////////////////////////////////////////////////////
-
-// permutation domains
-class FMobileFSR_UseFP16Dim : SHADER_PERMUTATION_BOOL("ENABLE_FP16");
-class FMobileFSR_UsePassthroughAlpha : SHADER_PERMUTATION_BOOL("USE_PASSTHROUGH_ALPHA");
-class FMobileRCAS_DenoiseDim : SHADER_PERMUTATION_BOOL("USE_RCAS_DENOISE");
-
-BEGIN_SHADER_PARAMETER_STRUCT(FMobileFSRPassParameters, )
-SHADER_PARAMETER(FUintVector4, Const0)
-SHADER_PARAMETER(FUintVector4, Const1)
-SHADER_PARAMETER(FUintVector4, Const2)
-SHADER_PARAMETER(FUintVector4, Const3)
-SHADER_PARAMETER(FVector2f, VPColor_ExtentInverse)
-SHADER_PARAMETER(FVector2f, VPColor_ViewportMin)
-SHADER_PARAMETER_SAMPLER(SamplerState, samLinearClamp)
-SHADER_PARAMETER_RDG_TEXTURE(Texture2D, InputTexture)
-END_SHADER_PARAMETER_STRUCT()
-
-BEGIN_SHADER_PARAMETER_STRUCT(FMobileRCASPassParameters, )
-SHADER_PARAMETER_RDG_TEXTURE(Texture2D, InputTexture)
-SHADER_PARAMETER(FUintVector4, Const0)
-SHADER_PARAMETER(FVector2f, VPColor_ExtentInverse)
-END_SHADER_PARAMETER_STRUCT()
-
-static float GMobileFSRCASSharpness = 0.2; // 0.2 stops = 1 / (2^N) ~= 0.87 in linear [0-1] sharpening of CAS
-static FAutoConsoleVariableRef CVarMobileFSRCASSharpness(
- TEXT("r.Mobile.FSR.RCAS.Sharpness"),
- GMobileFSRCASSharpness,
- TEXT("FSR RCAS Sharpness in stops (0: sharpest, 1: 1/2 as sharp, 2: 1/4 as sharp, 3: 1/8 as sharp, etc.). A value of 0.2 would correspond to a ~0.87 sharpness in [0-1] linear scale"),
- ECVF_Default);
-
-static int32 GMobileFSRCASDenoise = 0;
-static FAutoConsoleVariableRef CVarMobileFSRCASDenoise(
- TEXT("r.Mobile.FSR.RCAS.Denoise"),
- GMobileFSRCASDenoise,
- TEXT("FSR RCAS Denoise support for grainy input such as dithered images or input with custom film grain effects applied prior to FSR. 1:On, 0:Off"),
- ECVF_Default);
-
-static int32 GMobileFSRDisableCompute = 0;
-static FAutoConsoleVariableRef CVarMobileFSRDisableCompute(
- TEXT("r.Mobile.FSR.DisableCompute"),
- GMobileFSRDisableCompute,
- TEXT("FSR Disable compute shaders for FSR (Recommended for Adreno). 1: Compute Disabled, 0: Compute Enabled (default)"),
- ECVF_Default);
-
-///
-/// FSR COMPUTE SHADER
-///
-class FMobileFSRCS : public FGlobalShader
-{
-public:
- DECLARE_GLOBAL_SHADER(FMobileFSRCS);
- SHADER_USE_PARAMETER_STRUCT(FMobileFSRCS, FGlobalShader);
-
- using FPermutationDomain = TShaderPermutationDomain;
-
- BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
- SHADER_PARAMETER_STRUCT_INCLUDE(FMobileFSRPassParameters, FSR)
- SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture2D, OutputTexture)
- END_SHADER_PARAMETER_STRUCT()
-
- static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
- {
- FPermutationDomain PermutationVector(Parameters.PermutationId);
-
- if (PermutationVector.Get())
- {
- if (IsSimulatedPlatform(Parameters.Platform) || !IsDxcEnabledForPlatform(Parameters.Platform))
- {
- return false;
- }
- }
-
- return IsMobilePlatform(Parameters.Platform);
- }
-
- static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
- {
- FPermutationDomain PermutationVector(Parameters.PermutationId);
-
- OutEnvironment.SetDefine(TEXT("COMPUTE_SHADER"), 1);
-
- OutEnvironment.SetDefine(TEXT("THREADGROUP_SIZEX"), 64);
- OutEnvironment.SetDefine(TEXT("THREADGROUP_SIZEY"), 1);
- OutEnvironment.SetDefine(TEXT("THREADGROUP_SIZEZ"), 1);
- }
-};
-
-IMPLEMENT_GLOBAL_SHADER(FMobileFSRCS, "/Plugin/MobileFSR/Private/PostProcessMobileFFX_FSR.usf", "MainCS", SF_Compute);
-
-class FMobileFSRPS : public FGlobalShader
-{
-public:
- DECLARE_GLOBAL_SHADER(FMobileFSRPS);
- SHADER_USE_PARAMETER_STRUCT(FMobileFSRPS, FGlobalShader);
-
- using FPermutationDomain = TShaderPermutationDomain;
-
- BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
- SHADER_PARAMETER_STRUCT_INCLUDE(FMobileFSRPassParameters, FSR)
- RENDER_TARGET_BINDING_SLOTS()
- END_SHADER_PARAMETER_STRUCT()
-
- static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
- {
- FPermutationDomain PermutationVector(Parameters.PermutationId);
-
- if (PermutationVector.Get())
- {
- if (IsSimulatedPlatform(Parameters.Platform) || !IsDxcEnabledForPlatform(Parameters.Platform))
- {
- return false;
- }
- }
-
- return IsMobilePlatform(Parameters.Platform);
- }
-
- static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
- {
- }
-};
-
-IMPLEMENT_GLOBAL_SHADER(FMobileFSRPS, "/Plugin/MobileFSR/Private/PostProcessMobileFFX_FSR.usf", "MainPS", SF_Pixel);
-
-FScreenPassTexture AddEASUPass(FRDGBuilder& GraphBuilder, const FViewInfo& View, const ISpatialUpscaler::FInputs& PassInputs)
-{
- using namespace MobileFSRPrivate;
-
- FScreenPassTexture OutputTexture;
- bool bUseFP16 = !IsSimulatedPlatform(View.GetShaderPlatform()) && IsDxcEnabledForPlatform(View.GetShaderPlatform());
-
- FRDGTextureDesc FSROutputTextureDesc = PassInputs.SceneColor.Texture->Desc;
- FSROutputTextureDesc.Reset();
- FSROutputTextureDesc.Extent = View.UnscaledViewRect.Max;
- FSROutputTextureDesc.ClearValue = FClearValueBinding::Black;
- FSROutputTextureDesc.Flags = TexCreate_ShaderResource | TexCreate_UAV | TexCreate_RenderTargetable;
-
- if (PassInputs.OverrideOutput.IsValid())
- {
- OutputTexture = PassInputs.OverrideOutput;
- }
- else
- {
- OutputTexture = FScreenPassTexture(PassInputs.SceneColor);
- OutputTexture.Texture = GraphBuilder.CreateTexture(FSROutputTextureDesc, TEXT("FSR-Output"), ERDGTextureFlags::MultiFrame);
- }
-
- OutputTexture.ViewRect = View.UnscaledViewRect;
- FScreenPassTextureViewport OutputViewport = FScreenPassTextureViewport(OutputTexture);
- FScreenPassTextureViewport InputViewport = FScreenPassTextureViewport(PassInputs.SceneColor);
- FScreenPassTextureViewportParameters PassOutputViewportParams = GetScreenPassTextureViewportParameters(OutputViewport);
-
- AU1 const0[4];
- AU1 const1[4];
- AU1 const2[4];
- AU1 const3[4]; // Configure FSR
-
- FsrEasuConOffset(const0, const1, const2, const3,
- static_cast(InputViewport.Rect.Width())
- , static_cast(InputViewport.Rect.Height()) // current frame render resolution
- , static_cast(PassInputs.SceneColor.Texture->Desc.Extent.X)
- , static_cast(PassInputs.SceneColor.Texture->Desc.Extent.Y) // input container resolution (for DRS)
- , static_cast(OutputViewport.Rect.Width())
- , static_cast(OutputViewport.Rect.Height()) // upscaled-to resolution
- , static_cast(InputViewport.Rect.Min.X)
- , static_cast(InputViewport.Rect.Min.Y)
- );
-
- const bool bOutputSupportsUAV = (OutputTexture.Texture->Desc.Flags & TexCreate_UAV) == TexCreate_UAV;
-
- if (!bOutputSupportsUAV || GMobileFSRDisableCompute)
- {
- FMobileFSRPS::FParameters* PassParameters = GraphBuilder.AllocParameters();
- for (int i = 0; i < 4; i++)
- {
- PassParameters->FSR.Const0[i] = const0[i];
- PassParameters->FSR.Const1[i] = const1[i];
- PassParameters->FSR.Const2[i] = const2[i];
- PassParameters->FSR.Const3[i] = const3[i];
- }
- PassParameters->FSR.InputTexture = PassInputs.SceneColor.Texture;
- PassParameters->FSR.samLinearClamp = TStaticSamplerState::GetRHI();
- PassParameters->FSR.VPColor_ExtentInverse = PassOutputViewportParams.ExtentInverse;
- PassParameters->FSR.VPColor_ViewportMin = PassOutputViewportParams.ViewportMin;
- PassParameters->RenderTargets[0] = FRenderTargetBinding(OutputTexture.Texture, ERenderTargetLoadAction::EClear);
-
- FMobileFSRPS::FPermutationDomain PSPermutationVector;
- PSPermutationVector.Set(bUseFP16);
- PSPermutationVector.Set(IsPostProcessingWithAlphaChannelSupported());
-
- TShaderMapRef PixelShader(View.ShaderMap, PSPermutationVector);
-
- AddDrawScreenPass(GraphBuilder,
- RDG_EVENT_NAME("FSR/Upscale %dx%d -> %dx%d (PS)"
- , InputViewport.Rect.Width(), InputViewport.Rect.Height()
- , OutputViewport.Rect.Width(), OutputViewport.Rect.Height()),
- View, OutputViewport, InputViewport,
- PixelShader, PassParameters,
- EScreenPassDrawFlags::None
- );
- }
- // CS
- else
- {
- FMobileFSRCS::FParameters* PassParameters = GraphBuilder.AllocParameters();
-
- for (int i = 0; i < 4; i++)
- {
- PassParameters->FSR.Const0[i] = const0[i];
- PassParameters->FSR.Const1[i] = const1[i];
- PassParameters->FSR.Const2[i] = const2[i];
- PassParameters->FSR.Const3[i] = const3[i];
- }
- PassParameters->FSR.InputTexture = PassInputs.SceneColor.Texture;
- PassParameters->FSR.samLinearClamp = TStaticSamplerState::GetRHI();
- PassParameters->FSR.VPColor_ExtentInverse = PassOutputViewportParams.ExtentInverse;
- PassParameters->FSR.VPColor_ViewportMin = PassOutputViewportParams.ViewportMin;
- PassParameters->OutputTexture = GraphBuilder.CreateUAV(OutputTexture.Texture);
-
- FMobileFSRCS::FPermutationDomain CSPermutationVector;
- CSPermutationVector.Set(bUseFP16);
- CSPermutationVector.Set(IsPostProcessingWithAlphaChannelSupported());
-
- TShaderMapRef ComputeShaderFSR(View.ShaderMap, CSPermutationVector);
- FComputeShaderUtils::AddPass(
- GraphBuilder,
- RDG_EVENT_NAME("FSR/Upscale %dx%d -> %dx%d (CS)"
- , InputViewport.Rect.Width(), InputViewport.Rect.Height()
- , OutputViewport.Rect.Width(), OutputViewport.Rect.Height()),
- ComputeShaderFSR,
- PassParameters,
- FComputeShaderUtils::GetGroupCount(OutputViewport.Rect.Size(), 16));
- }
-
- return MoveTemp(OutputTexture);
-}
-
-///
-/// RCAS COMPUTE SHADER
-///
-class FMobileRCASCS : public FGlobalShader
-{
-public:
- DECLARE_GLOBAL_SHADER(FMobileRCASCS);
- SHADER_USE_PARAMETER_STRUCT(FMobileRCASCS, FGlobalShader);
-
- using FPermutationDomain = TShaderPermutationDomain;
-
- BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
- SHADER_PARAMETER_STRUCT_INCLUDE(FMobileRCASPassParameters, RCAS)
- SHADER_PARAMETER_RDG_TEXTURE_UAV(RWTexture2D, OutputTexture)
- END_SHADER_PARAMETER_STRUCT()
-
- static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
- {
- FPermutationDomain PermutationVector(Parameters.PermutationId);
-
- if (PermutationVector.Get())
- {
- if (IsSimulatedPlatform(Parameters.Platform) || !IsDxcEnabledForPlatform(Parameters.Platform))
- {
- return false;
- }
- }
-
- return IsMobilePlatform(Parameters.Platform);
- }
-
- static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
- {
- FPermutationDomain PermutationVector(Parameters.PermutationId);
-
- OutEnvironment.SetDefine(TEXT("COMPUTE_SHADER"), 1);
-
- OutEnvironment.SetDefine(TEXT("THREADGROUP_SIZEX"), 64);
- OutEnvironment.SetDefine(TEXT("THREADGROUP_SIZEY"), 1);
- OutEnvironment.SetDefine(TEXT("THREADGROUP_SIZEZ"), 1);
- }
-};
-
-IMPLEMENT_GLOBAL_SHADER(FMobileRCASCS, "/Plugin/MobileFSR/Private/PostProcessMobileFFX_RCAS.usf", "MainCS", SF_Compute);
-
-
-///
-/// RCAS PIXEL SHADER
-///
-class FMobileRCASPS : public FGlobalShader
-{
-public:
- DECLARE_GLOBAL_SHADER(FMobileRCASPS);
- SHADER_USE_PARAMETER_STRUCT(FMobileRCASPS, FGlobalShader);
-
- using FPermutationDomain = TShaderPermutationDomain;
-
- BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
- SHADER_PARAMETER_STRUCT_INCLUDE(FMobileRCASPassParameters, RCAS)
- RENDER_TARGET_BINDING_SLOTS()
- END_SHADER_PARAMETER_STRUCT()
-
- static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters)
- {
- FPermutationDomain PermutationVector(Parameters.PermutationId);
- if (PermutationVector.Get())
- {
- if (IsSimulatedPlatform(Parameters.Platform) || !IsDxcEnabledForPlatform(Parameters.Platform))
- {
- return false;
- }
- }
-
- return IsMobilePlatform(Parameters.Platform);
- }
-
- static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters& Parameters, FShaderCompilerEnvironment& OutEnvironment)
- {
- }
-};
-
-IMPLEMENT_GLOBAL_SHADER(FMobileRCASPS, "/Plugin/MobileFSR/Private/PostProcessMobileFFX_RCAS.usf", "MainPS", SF_Pixel);
-
-FScreenPassTexture AddCASPass(FRDGBuilder& GraphBuilder, const FViewInfo& View, const ISpatialUpscaler::FInputs& PassInputs)
-{
- using namespace MobileFSRPrivate;
-
- FScreenPassTexture OutputTexture;
- bool bUseFP16 = !IsSimulatedPlatform(View.GetShaderPlatform()) && IsDxcEnabledForPlatform(View.GetShaderPlatform());
-
- if (PassInputs.OverrideOutput.IsValid())
- {
- OutputTexture = PassInputs.OverrideOutput;
- }
- else
- {
- FRDGTextureDesc RCASOutputTextureDesc = PassInputs.SceneColor.Texture->Desc;
-
- OutputTexture = FScreenPassTexture(PassInputs.SceneColor);
- OutputTexture.Texture = GraphBuilder.CreateTexture(RCASOutputTextureDesc, TEXT("RCAS-Output"), ERDGTextureFlags::MultiFrame);
- }
-
- FScreenPassTextureViewport OutputViewport = FScreenPassTextureViewport(OutputTexture);
- FScreenPassTextureViewportParameters PassOutputViewportParams = GetScreenPassTextureViewportParameters(OutputViewport);
-
- AU1 const0[4]; // Configure FSR
- FsrRcasCon(const0, GMobileFSRCASSharpness);
-
- const bool bOutputSupportsUAV = (OutputTexture.Texture->Desc.Flags & TexCreate_UAV) == TexCreate_UAV;
-
- if (!bOutputSupportsUAV || GMobileFSRDisableCompute)
- {
- FMobileRCASPS::FParameters* PassParameters = GraphBuilder.AllocParameters();
-
- // set pass inputs
- for (int i = 0; i < 4; i++) { PassParameters->RCAS.Const0[i] = const0[i]; }
- PassParameters->RCAS.InputTexture = PassInputs.SceneColor.Texture;
- PassParameters->RCAS.VPColor_ExtentInverse = PassOutputViewportParams.ExtentInverse;
- PassParameters->RenderTargets[0] = FRenderTargetBinding(OutputTexture.Texture, ERenderTargetLoadAction::EClear);
-
- // grab shaders
- FMobileRCASPS::FPermutationDomain PSPermutationVector;
- PSPermutationVector.Set(bUseFP16);
- PSPermutationVector.Set(IsPostProcessingWithAlphaChannelSupported());
- PSPermutationVector.Set(GMobileFSRCASDenoise > 0);
-
- TShaderMapRef PixelShader(View.ShaderMap, PSPermutationVector);
-
- AddDrawScreenPass(GraphBuilder,
- RDG_EVENT_NAME("FSR/RCAS Sharpness=%.2f(PS)"
- , GMobileFSRCASSharpness),
- View, OutputViewport, OutputViewport,
- PixelShader, PassParameters,
- EScreenPassDrawFlags::None
- );
- }
- // CS
- else
- {
- FMobileRCASCS::FParameters* PassParameters = GraphBuilder.AllocParameters();
-
- for (int i = 0; i < 4; i++)
- {
- PassParameters->RCAS.Const0[i] = const0[i];
- }
- PassParameters->RCAS.InputTexture = PassInputs.SceneColor.Texture;
- PassParameters->RCAS.VPColor_ExtentInverse = PassOutputViewportParams.ExtentInverse;
- PassParameters->OutputTexture = GraphBuilder.CreateUAV(OutputTexture.Texture);
-
- FMobileRCASCS::FPermutationDomain CSPermutationVector;
- CSPermutationVector.Set(bUseFP16);
- CSPermutationVector.Set(IsPostProcessingWithAlphaChannelSupported());
- CSPermutationVector.Set(GMobileFSRCASDenoise > 0);
-
- TShaderMapRef ComputeShaderRCASPass(View.ShaderMap, CSPermutationVector);
- FComputeShaderUtils::AddPass(
- GraphBuilder,
- RDG_EVENT_NAME("FSR/RCAS Sharpness=%.2f (CS)", GMobileFSRCASSharpness),
- ComputeShaderRCASPass,
- PassParameters,
- FComputeShaderUtils::GetGroupCount(OutputViewport.Rect.Size(), 16));
- }
-
- return MoveTemp(OutputTexture);
-}
-
-DECLARE_GPU_STAT(MobileFSRUpscaler);
-
-FMobileFSRUpscaler::FMobileFSRUpscaler(bool bInIsEASUPass) : bIsEASUPass(bInIsEASUPass)
-{
-}
-
-ISpatialUpscaler* FMobileFSRUpscaler::Fork_GameThread(const class FSceneViewFamily& ViewFamily) const
-{
- return new FMobileFSRUpscaler(bIsEASUPass);
-}
-
-FScreenPassTexture FMobileFSRUpscaler::AddPasses(FRDGBuilder& GraphBuilder, const FViewInfo& View, const FInputs& PassInputs) const
-{
- RDG_EVENT_SCOPE_STAT(GraphBuilder, MobileFSRUpscaler, "MobileFSRUpscaler");
- RDG_GPU_STAT_SCOPE(GraphBuilder, MobileFSRUpscaler);
-
- FScreenPassTexture SceneColor;
-
- if (bIsEASUPass)
- {
- SceneColor = AddEASUPass(GraphBuilder, View, PassInputs);
- }
- else
- {
- SceneColor = AddCASPass(GraphBuilder, View, PassInputs);
- }
-
- return MoveTemp(SceneColor);
-}
diff --git a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRUpscaler.h b/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRUpscaler.h
deleted file mode 100644
index 67b07ab..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRUpscaler.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include "PostProcess/PostProcessUpscale.h"
-
-class FMobileFSRUpscaler final : public ISpatialUpscaler
-{
-public:
- FMobileFSRUpscaler(bool bInIsEASUPass);
-
- // ISpatialUpscaler interface
- const TCHAR* GetDebugName() const override { return TEXT("FMobileFSRUpscaler"); }
-
- ISpatialUpscaler* Fork_GameThread(const class FSceneViewFamily& ViewFamily) const override;
- FScreenPassTexture AddPasses(FRDGBuilder& GraphBuilder, const FViewInfo& View, const FInputs& PassInputs) const override;
-
-private:
- bool bIsEASUPass = false;
-};
\ No newline at end of file
diff --git a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRViewExtension.cpp b/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRViewExtension.cpp
deleted file mode 100644
index 78c9e2a..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/Private/MobileFSRViewExtension.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#include "MobileFSRViewExtension.h"
-#include "MobileFSRUpscaler.h"
-
-static TAutoConsoleVariable CVarEnableFSR(
- TEXT("r.Mobile.FSR.Enabled"),
- 1,
- TEXT("Enable Mobile FSR for Primary Upscale"),
- ECVF_RenderThreadSafe);
-
-TAutoConsoleVariable CVarMobileFSRCASEnabled(
- TEXT("r.Mobile.FSR.RCAS.Enabled"),
- 1,
- TEXT("FidelityFX FSR/RCAS : Robust Contrast Adaptive Sharpening Filter"),
- ECVF_RenderThreadSafe);
-
-TAutoConsoleVariableCVarMobileFSRUpsamplingEnabled(
- TEXT("r.Mobile.FSR.Upsampling.Enabled"),
- 1,
- TEXT("FidelityFX FSR/RCAS : Robust Contrast Adaptive Sharpening Filter"),
- ECVF_Default);
-
-void FMobileFSRViewExtension::BeginRenderViewFamily(FSceneViewFamily& InViewFamily)
-{
- if (InViewFamily.GetFeatureLevel() == ERHIFeatureLevel::ES3_1 && CVarEnableFSR.GetValueOnAnyThread() > 0)
- {
- if (CVarMobileFSRUpsamplingEnabled.GetValueOnAnyThread())
- {
- InViewFamily.SetPrimarySpatialUpscalerInterface(new FMobileFSRUpscaler(true));
- }
- if (CVarMobileFSRCASEnabled.GetValueOnAnyThread())
- {
- InViewFamily.SetSecondarySpatialUpscalerInterface(new FMobileFSRUpscaler(false));
- }
- }
-}
diff --git a/Plugins/MobileFSR/Source/MobileFSR/Public/MobileFSRModule.h b/Plugins/MobileFSR/Source/MobileFSR/Public/MobileFSRModule.h
deleted file mode 100644
index 0f71b60..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/Public/MobileFSRModule.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include "Modules/ModuleManager.h"
-#include "Logging/LogMacros.h"
-
-DECLARE_LOG_CATEGORY_EXTERN(LogMobileFSR, Verbose, All);
-
-class FMobileFSRViewExtension;
-
-class FMobileFSRModule final : public IModuleInterface
-{
-public:
- void StartupModule() override;
- void ShutdownModule() override;
- void OnPostEngineInit();
-
- TSharedPtr ViewExtension;
-};
\ No newline at end of file
diff --git a/Plugins/MobileFSR/Source/MobileFSR/Public/MobileFSRViewExtension.h b/Plugins/MobileFSR/Source/MobileFSR/Public/MobileFSRViewExtension.h
deleted file mode 100644
index 6d8b19d..0000000
--- a/Plugins/MobileFSR/Source/MobileFSR/Public/MobileFSRViewExtension.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include "SceneViewExtension.h"
-
-class FMobileFSRViewExtension final : public FSceneViewExtensionBase
-{
-public:
- FMobileFSRViewExtension(const FAutoRegister& AutoRegister) : FSceneViewExtensionBase(AutoRegister) {}
-
- MOBILEFSR_API void BeginRenderViewFamily(FSceneViewFamily& InViewFamily) override;
-};
\ No newline at end of file
diff --git a/Source/FunnyGirl/FunnyGirl.Build.cs b/Source/FunnyGirl/FunnyGirl.Build.cs
index c5cb02f..b12be64 100644
--- a/Source/FunnyGirl/FunnyGirl.Build.cs
+++ b/Source/FunnyGirl/FunnyGirl.Build.cs
@@ -8,7 +8,7 @@ public class FunnyGirl : ModuleRules
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
- PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "HTTP", "Json", "JsonUtilities", "AssetRegistry", "MediaAssets", "UMG" });
+ PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "HTTP", "Json", "JsonUtilities", "AssetRegistry", "MediaAssets", "UMG", "IKRig" });
PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
diff --git a/Source/FunnyGirl/Private/Morph/MorphControllerComponent.cpp b/Source/FunnyGirl/Private/Morph/MorphControllerComponent.cpp
index df597ff..51c1a76 100644
--- a/Source/FunnyGirl/Private/Morph/MorphControllerComponent.cpp
+++ b/Source/FunnyGirl/Private/Morph/MorphControllerComponent.cpp
@@ -2,6 +2,8 @@
#include "Morph/MorphControllerComponent.h"
#include "Morph/MorphPresetDataAsset.h"
+#include "Animation/AnimInstance.h"
+#include "Animation/AnimMontage.h"
#include "Components/SkeletalMeshComponent.h"
#include "GameFramework/Character.h"
#include "Engine/World.h"
@@ -71,6 +73,16 @@ USkeletalMeshComponent* UMorphControllerComponent::ResolveMeshComponent() const
return nullptr;
}
+USkeletalMeshComponent* UMorphControllerComponent::ResolveAnimationMeshComponent() const
+{
+ if (AnimationMeshComponent)
+ {
+ return AnimationMeshComponent;
+ }
+
+ return ResolveMeshComponent();
+}
+
bool UMorphControllerComponent::PresetHasAnyPositiveCurveValue(const UMorphPresetDataAsset& Preset) const
{
for (const FMorphTimelineClip& Clip : Preset.MorphTargets)
@@ -206,6 +218,11 @@ bool UMorphControllerComponent::AddPreset(UMorphPresetDataAsset* Preset, float W
UE_LOG(LogMorphController, Warning, TEXT("AddPreset accepted on %s, but no SkeletalMeshComponent was found. Set TargetMeshComponent or place the component on an actor with a skeletal mesh."), *GetNameSafe(GetOwner()));
}
+ if (bPlayPresetMontages)
+ {
+ PlayPresetMontage(Preset);
+ }
+
if (!PresetHasAnyPositiveCurveValue(*Preset) && bLogWarnings)
{
UE_LOG(LogMorphController, Warning, TEXT("AddPreset accepted on %s, but preset %s has no positive curve key values. Default curve keys are 0, so raise keys in the clip curve editor to see morph output."), *GetNameSafe(GetOwner()), *GetNameSafe(Preset));
@@ -250,6 +267,54 @@ bool UMorphControllerComponent::PlayPreset(UMorphPresetDataAsset* Preset, float
return AddPreset(Preset, Weight);
}
+bool UMorphControllerComponent::PlayPresetMontage(UMorphPresetDataAsset* Preset)
+{
+ if (!Preset)
+ {
+ return false;
+ }
+
+ UAnimMontage* Montage = Preset->GetMontage();
+ if (!Montage)
+ {
+ return false;
+ }
+
+ USkeletalMeshComponent* Mesh = ResolveAnimationMeshComponent();
+ if (!Mesh)
+ {
+ if (bLogWarnings)
+ {
+ UE_LOG(LogMorphController, Warning, TEXT("PlayPresetMontage ignored on %s: no animation mesh component was found for montage %s."), *GetNameSafe(GetOwner()), *GetNameSafe(Montage));
+ }
+ return false;
+ }
+
+ UAnimInstance* AnimInstance = Mesh->GetAnimInstance();
+ if (!AnimInstance)
+ {
+ if (bLogWarnings)
+ {
+ UE_LOG(LogMorphController, Warning, TEXT("PlayPresetMontage ignored on %s: animation mesh %s has no AnimInstance."), *GetNameSafe(GetOwner()), *GetNameSafe(Mesh));
+ }
+ return false;
+ }
+
+ const float PlayRate = FMath::Max(Preset->MontagePlayRate, 0.01f);
+ const float Duration = AnimInstance->Montage_Play(Montage, PlayRate, EMontagePlayReturnType::MontageLength, 0.0f);
+ return Duration > 0.0f;
+}
+
+void UMorphControllerComponent::SetMontageMeshComponent(USkeletalMeshComponent* InMontageMeshComponent)
+{
+ AnimationMeshComponent = InMontageMeshComponent;
+}
+
+USkeletalMeshComponent* UMorphControllerComponent::GetMontageMeshComponent() const
+{
+ return ResolveAnimationMeshComponent();
+}
+
void UMorphControllerComponent::RemovePreset(UMorphPresetDataAsset* Preset)
{
if (!Preset) return;
@@ -301,6 +366,10 @@ void UMorphControllerComponent::SetActivePresets(const TArray 0.0f)
{
ActivePresets.Add(NewSlot);
+ if (bPlayPresetMontages)
+ {
+ PlayPresetMontage(NewSlot.Preset);
+ }
}
}
}
diff --git a/Source/FunnyGirl/Private/Morph/MorphPresetDataAsset.cpp b/Source/FunnyGirl/Private/Morph/MorphPresetDataAsset.cpp
index f95ffdb..ac9db07 100644
--- a/Source/FunnyGirl/Private/Morph/MorphPresetDataAsset.cpp
+++ b/Source/FunnyGirl/Private/Morph/MorphPresetDataAsset.cpp
@@ -2,6 +2,8 @@
#include "Morph/MorphPresetDataAsset.h"
+#include "Animation/AnimMontage.h"
+
namespace
{
constexpr float MorphPresetMinMorphTargetValue = -1.0f;
@@ -64,6 +66,10 @@ float UMorphPresetDataAsset::GetTimelineLength() const
MaxEnd = FMath::Max(MaxEnd, Clip.StartTime + Clip.Duration);
}
}
+ if (const UAnimMontage* PreviewMontage = GetMontage())
+ {
+ MaxEnd = FMath::Max(MaxEnd, FMath::Max(MontageStartTime, 0.0f) + PreviewMontage->GetPlayLength());
+ }
return MaxEnd;
}
diff --git a/Source/FunnyGirl/Private/Utility/FunnyGirlUtilityBlueprintLibrary.cpp b/Source/FunnyGirl/Private/Utility/FunnyGirlUtilityBlueprintLibrary.cpp
index beaad78..1485fd0 100644
--- a/Source/FunnyGirl/Private/Utility/FunnyGirlUtilityBlueprintLibrary.cpp
+++ b/Source/FunnyGirl/Private/Utility/FunnyGirlUtilityBlueprintLibrary.cpp
@@ -105,6 +105,22 @@ bool SaveLightSaveObject(const TSharedRef& SaveObject, FString& Out
return true;
}
+
+bool DeleteDirectoryIfExists(const FString& Directory, FString& OutError)
+{
+ if (!IFileManager::Get().DirectoryExists(*Directory))
+ {
+ return true;
+ }
+
+ if (!IFileManager::Get().DeleteDirectory(*Directory, false, true))
+ {
+ OutError = FString::Printf(TEXT("Could not delete save directory: %s"), *Directory);
+ return false;
+ }
+
+ return true;
+}
}
bool UFunnyGirlUtilityBlueprintLibrary::SaveMorphTargetNamesToFile(
@@ -361,6 +377,25 @@ bool UFunnyGirlUtilityBlueprintLibrary::DeleteLightString(const FString& Field,
return SaveLightSaveObject(SaveObject.ToSharedRef(), OutError);
}
+bool UFunnyGirlUtilityBlueprintLibrary::ClearFunnyGirlSaves(FString& OutError)
+{
+ OutError.Reset();
+
+ const FString ChatDirectory = FPaths::ProjectSavedDir() / TEXT("Chat");
+ if (!DeleteDirectoryIfExists(ChatDirectory, OutError))
+ {
+ return false;
+ }
+
+ const FString LightSaveDirectory = FPaths::GetPath(GetLightSaveFilePath());
+ if (!DeleteDirectoryIfExists(LightSaveDirectory, OutError))
+ {
+ return false;
+ }
+
+ return true;
+}
+
bool UFunnyGirlUtilityBlueprintLibrary::OpenStreamMediaSourceUrl(UMediaPlayer* MediaPlayer, UStreamMediaSource* StreamMediaSource, const FString& Url)
{
if (!MediaPlayer || !StreamMediaSource || !Url.Contains(TEXT("://")))
diff --git a/Source/FunnyGirl/Public/Morph/MorphControllerComponent.h b/Source/FunnyGirl/Public/Morph/MorphControllerComponent.h
index a135caf..d08c033 100644
--- a/Source/FunnyGirl/Public/Morph/MorphControllerComponent.h
+++ b/Source/FunnyGirl/Public/Morph/MorphControllerComponent.h
@@ -8,6 +8,7 @@
#include "MorphControllerComponent.generated.h"
class USkeletalMeshComponent;
+class UAnimMontage;
UENUM(BlueprintType)
enum class EMorphLayerBlendMode : uint8
@@ -62,6 +63,18 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Morph Controller")
TObjectPtr TargetMeshComponent;
+ /** Mesh that owns body animation montages. Use this when the visible girl mesh retargets/copies motion from a separate animation mesh. Falls back to Target Mesh Component when unset. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Morph Controller|Montage", meta = (
+ DisplayName = "Montage Mesh Component",
+ ToolTip = "Skeletal mesh component where preset montages are played. Leave empty to use the morph target mesh."))
+ TObjectPtr AnimationMeshComponent;
+
+ /** Automatically play a preset's optional Montage on Animation Mesh Component when the preset starts. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Morph Controller|Montage", meta = (
+ DisplayName = "Play Preset Montages",
+ ToolTip = "When enabled, Add Preset, Play Morph Preset, and Set Active Presets play the montage stored in each preset."))
+ bool bPlayPresetMontages = true;
+
/** Speed used when blending preset weight toward the requested weight. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Morph Controller", meta = (ClampMin = "0.1"))
float BlendSpeed = 4.0f;
@@ -112,6 +125,18 @@ public:
UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Morph Controller", meta = (DisplayName = "Play Morph Preset"))
bool PlayPreset(UMorphPresetDataAsset* Preset, float Weight = 1.0f);
+ /** Play the montage assigned inside a morph preset on the Animation Mesh Component. */
+ UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Morph Controller|Montage", meta = (DisplayName = "Play Preset Montage"))
+ bool PlayPresetMontage(UMorphPresetDataAsset* Preset);
+
+ /** Set the mesh component used for preset montage playback. */
+ UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Morph Controller|Montage", meta = (DisplayName = "Set Montage Mesh Component"))
+ void SetMontageMeshComponent(USkeletalMeshComponent* InMontageMeshComponent);
+
+ /** Get the explicit montage mesh component, or the resolved fallback mesh when none is set. */
+ UFUNCTION(BlueprintCallable, BlueprintPure, Category = "FunnyGirl|Morph Controller|Montage", meta = (DisplayName = "Get Montage Mesh Component"))
+ USkeletalMeshComponent* GetMontageMeshComponent() const;
+
/** Remove a preset from active playback immediately. */
UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Morph Controller", meta = (DisplayName = "Remove Preset"))
void RemovePreset(UMorphPresetDataAsset* Preset);
@@ -205,6 +230,7 @@ private:
bool bMissingMeshWarningIssued = false;
USkeletalMeshComponent* ResolveMeshComponent() const;
+ USkeletalMeshComponent* ResolveAnimationMeshComponent() const;
bool PresetHasAnyPositiveCurveValue(const UMorphPresetDataAsset& Preset) const;
void UpdateMorphTargets(float DeltaTime);
void BlendMorphLayer(const TMap& LayerValues, float LayerWeight, EMorphLayerBlendMode BlendMode, TMap& InOutFinalValues) const;
diff --git a/Source/FunnyGirl/Public/Morph/MorphPresetDataAsset.h b/Source/FunnyGirl/Public/Morph/MorphPresetDataAsset.h
index c02b039..ab565c8 100644
--- a/Source/FunnyGirl/Public/Morph/MorphPresetDataAsset.h
+++ b/Source/FunnyGirl/Public/Morph/MorphPresetDataAsset.h
@@ -3,9 +3,11 @@
#pragma once
#include "CoreMinimal.h"
+#include "Animation/AnimMontage.h"
#include "Curves/CurveFloat.h"
#include "Engine/DataAsset.h"
#include "Engine/SkeletalMesh.h"
+#include "Retargeter/IKRetargeter.h"
#include "MorphPresetDataAsset.generated.h"
USTRUCT(BlueprintType)
@@ -41,6 +43,11 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset|Preview", meta = (DisplayName = "Preview Mesh"))
TSoftObjectPtr PreviewMesh;
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset|Preview|Montage", meta = (
+ DisplayName = "Preview IK Retargeter",
+ ToolTip = "IK Retargeter used by preview to drive the girl mesh from the animation mesh, matching the Retarget Pose From Mesh AnimBP path."))
+ TSoftObjectPtr PreviewIKRetargeter;
+
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset", meta = (DisplayName = "Display Name"))
FText DisplayName;
@@ -52,6 +59,23 @@ public:
ToolTip = "Morph clips placed on the preset timeline."))
TArray MorphTargets;
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset|Montage", meta = (
+ DisplayName = "Montage",
+ ToolTip = "Optional body montage associated with this emotion. Runtime should play it on the animation/source mesh, while morphs stay on the girl mesh."))
+ TSoftObjectPtr Montage;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset|Montage", meta = (
+ DisplayName = "Runtime Montage Play Rate",
+ ToolTip = "Play rate used when the morph controller plays this montage at runtime. The editor timeline preview keeps the block at the montage asset's real length.",
+ ClampMin = "0.01"))
+ float MontagePlayRate = 1.0f;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset|Montage", meta = (
+ DisplayName = "Montage Timeline Start",
+ ToolTip = "Time on the morph preset timeline where the montage block starts in preview.",
+ ClampMin = "0"))
+ float MontageStartTime = 0.0f;
+
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Morph Preset", meta = (
DisplayName = "Duration",
ToolTip = "Preset duration in seconds. 0 means auto-calculate from clips.",
@@ -81,6 +105,9 @@ public:
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Morph Preset")
float GetTimelineLength() const;
+ UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Morph Preset|Montage")
+ UAnimMontage* GetMontage() const { return Montage.LoadSynchronous(); }
+
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Morph Preset")
bool HasPlayableContent() const { return IsValidPreset(); }
diff --git a/Source/FunnyGirl/Public/Utility/FunnyGirlUtilityBlueprintLibrary.h b/Source/FunnyGirl/Public/Utility/FunnyGirlUtilityBlueprintLibrary.h
index ab1a6b4..406971a 100644
--- a/Source/FunnyGirl/Public/Utility/FunnyGirlUtilityBlueprintLibrary.h
+++ b/Source/FunnyGirl/Public/Utility/FunnyGirlUtilityBlueprintLibrary.h
@@ -56,6 +56,11 @@ public:
UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Save")
static bool DeleteLightString(const FString& Field, FString& OutError);
+ UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Save", meta = (
+ DisplayName = "Clear Funny Girl Saves",
+ ToolTip = "Deletes runtime save data written by Funny Girl systems: chat/player/semantic memory and light string saves. Exported files are not deleted."))
+ static bool ClearFunnyGirlSaves(FString& OutError);
+
UFUNCTION(BlueprintCallable, Category = "FunnyGirl|Media")
static bool OpenStreamMediaSourceUrl(UMediaPlayer* MediaPlayer, UStreamMediaSource* StreamMediaSource, const FString& Url);
};
diff --git a/Source/FunnyGirlEditor/FunnyGirlEditor.Build.cs b/Source/FunnyGirlEditor/FunnyGirlEditor.Build.cs
index d4d97dd..43ba7da 100644
--- a/Source/FunnyGirlEditor/FunnyGirlEditor.Build.cs
+++ b/Source/FunnyGirlEditor/FunnyGirlEditor.Build.cs
@@ -10,6 +10,6 @@ public class FunnyGirlEditor : ModuleRules
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "FunnyGirl" });
- PrivateDependencyModuleNames.AddRange(new string[] { "AdvancedPreviewScene", "AnimationDataController", "AnimGraph", "AssetTools", "AssetRegistry", "ContentBrowser", "EditorWidgets", "InputCore", "Json", "JsonUtilities", "KismetWidgets", "LevelEditor", "Persona", "PropertyEditor", "SequencerWidgets", "Slate", "SlateCore", "ToolMenus", "UnrealEd" });
+ PrivateDependencyModuleNames.AddRange(new string[] { "AdvancedPreviewScene", "AnimationDataController", "AnimGraph", "AssetTools", "AssetRegistry", "ContentBrowser", "EditorWidgets", "InputCore", "IKRig", "Json", "JsonUtilities", "KismetWidgets", "LevelEditor", "Persona", "PropertyEditor", "SequencerWidgets", "Slate", "SlateCore", "ToolMenus", "UnrealEd" });
}
}
diff --git a/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.cpp b/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.cpp
index 9f98daf..a7b29c8 100644
--- a/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.cpp
+++ b/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.cpp
@@ -2,6 +2,8 @@
#include "FunnyGirlEditorModule.h"
+#include "AssetRegistry/AssetRegistryModule.h"
+#include "AssetRegistry/IAssetRegistry.h"
#include "AssetTypeActions/AssetTypeActions_DirectorPrompt.h"
#include "AssetTypeActions/AssetTypeActions_Identity.h"
#include "AssetTypeActions/AssetTypeActions_LLMProvider.h"
@@ -11,12 +13,16 @@
#include "AssetToolsModule.h"
#include "IAssetTools.h"
#include "IAssetTypeActions.h"
+#include "Misc/FileHelper.h"
+#include "Misc/MessageDialog.h"
+#include "Misc/Paths.h"
#include "Modules/ModuleManager.h"
#include "Morph/Editor/LipSyncMappingAssetTypeActions.h"
#include "Morph/Editor/MorphPresetAssetTypeActions.h"
#include "Morph/MorphPresetDataAsset.h"
#include "Morph/Editor/MorphPresetDetailsCustomization.h"
#include "PropertyEditorModule.h"
+#include "ToolMenus.h"
#define LOCTEXT_NAMESPACE "FunnyGirlEditor"
@@ -44,10 +50,18 @@ void FFunnyGirlEditorModule::StartupModule()
FOnGetDetailCustomizationInstance::CreateStatic(&FMorphPresetDetailsCustomization::MakeInstance));
PropertyEditorModule.NotifyCustomizationModuleChanged();
bMorphPresetCustomizationRegistered = true;
+
+ UToolMenus::RegisterStartupCallback(FSimpleMulticastDelegate::FDelegate::CreateRaw(this, &FFunnyGirlEditorModule::RegisterMenus));
}
void FFunnyGirlEditorModule::ShutdownModule()
{
+ if (UObjectInitialized() && FModuleManager::Get().IsModuleLoaded(TEXT("ToolMenus")))
+ {
+ UToolMenus::UnRegisterStartupCallback(this);
+ UToolMenus::UnregisterOwner(this);
+ }
+
if (FModuleManager::Get().IsModuleLoaded(TEXT("AssetTools")))
{
IAssetTools& AssetTools = FModuleManager::GetModuleChecked("AssetTools").Get();
@@ -88,6 +102,91 @@ void FFunnyGirlEditorModule::RegisterAssetTypeAction(const TSharedRefExtendMenu(TEXT("LevelEditor.MainMenu.Tools"));
+ if (!ToolsMenu)
+ {
+ return;
+ }
+
+ FToolMenuSection& Section = ToolsMenu->FindOrAddSection(TEXT("FunnyGirl"));
+ Section.Label = LOCTEXT("FunnyGirlToolsSection", "Funny Girl");
+ Section.AddMenuEntry(
+ TEXT("ExportMorphPresetDescriptions"),
+ LOCTEXT("ExportMorphPresetDescriptionsLabel", "Export Morph Preset Descriptions"),
+ LOCTEXT("ExportMorphPresetDescriptionsTooltip", "Export all Morph Preset assets to Saved/Exports/MorphPresetDescriptions.tsv."),
+ FSlateIcon(),
+ FUIAction(FExecuteAction::CreateRaw(this, &FFunnyGirlEditorModule::ExportMorphPresetDescriptions)));
+}
+
+void FFunnyGirlEditorModule::ExportMorphPresetDescriptions()
+{
+ FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked(TEXT("AssetRegistry"));
+ IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
+ AssetRegistry.SearchAllAssets(true);
+
+ FARFilter Filter;
+ Filter.ClassPaths.Add(UMorphPresetDataAsset::StaticClass()->GetClassPathName());
+ Filter.bRecursiveClasses = true;
+
+ TArray PresetAssets;
+ AssetRegistry.GetAssets(Filter, PresetAssets);
+ PresetAssets.Sort([](const FAssetData& A, const FAssetData& B)
+ {
+ return A.GetSoftObjectPath().ToString() < B.GetSoftObjectPath().ToString();
+ });
+
+ FString Output;
+ Output += TEXT("AssetName\tPresetName\tDescription\n");
+
+ for (const FAssetData& AssetData : PresetAssets)
+ {
+ const UMorphPresetDataAsset* Preset = Cast(AssetData.GetAsset());
+ if (!Preset)
+ {
+ continue;
+ }
+
+ FString AssetName = AssetData.AssetName.ToString();
+ FString PresetName = Preset->DisplayName.ToString().TrimStartAndEnd();
+ FString Description = Preset->Description.ToString().TrimStartAndEnd();
+
+ if (PresetName.IsEmpty())
+ {
+ PresetName = AssetName;
+ }
+
+ AssetName.ReplaceInline(TEXT("\t"), TEXT(" "));
+ PresetName.ReplaceInline(TEXT("\t"), TEXT(" "));
+ Description.ReplaceInline(TEXT("\t"), TEXT(" "));
+ Description.ReplaceInline(TEXT("\r\n"), TEXT(" "));
+ Description.ReplaceInline(TEXT("\n"), TEXT(" "));
+ Description.ReplaceInline(TEXT("\r"), TEXT(" "));
+
+ Output += FString::Printf(TEXT("%s\t%s\t%s\n"), *AssetName, *PresetName, *Description);
+ }
+
+ const FString ExportDir = FPaths::Combine(FPaths::ProjectSavedDir(), TEXT("Exports"));
+ IFileManager::Get().MakeDirectory(*ExportDir, true);
+ const FString ExportPath = FPaths::Combine(ExportDir, TEXT("MorphPresetDescriptions.tsv"));
+
+ if (!FFileHelper::SaveStringToFile(Output, *ExportPath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM))
+ {
+ FMessageDialog::Open(EAppMsgType::Ok, FText::Format(
+ LOCTEXT("ExportMorphPresetDescriptionsFailed", "Failed to write Morph Preset descriptions to:\n{0}"),
+ FText::FromString(ExportPath)));
+ return;
+ }
+
+ FMessageDialog::Open(EAppMsgType::Ok, FText::Format(
+ LOCTEXT("ExportMorphPresetDescriptionsSuccess", "Exported {0} Morph Preset assets to:\n{1}"),
+ FText::AsNumber(PresetAssets.Num()),
+ FText::FromString(ExportPath)));
+}
+
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FFunnyGirlEditorModule, FunnyGirlEditor)
diff --git a/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.h b/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.h
index 421e25d..e6927c6 100644
--- a/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.h
+++ b/Source/FunnyGirlEditor/Private/FunnyGirlEditorModule.h
@@ -24,4 +24,6 @@ private:
bool bMorphPresetCustomizationRegistered = false;
void RegisterAssetTypeAction(const TSharedRef& AssetTypeAction);
+ void RegisterMenus();
+ void ExportMorphPresetDescriptions();
};
diff --git a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetDetailsCustomization.cpp b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetDetailsCustomization.cpp
index 812a9f5..918962b 100644
--- a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetDetailsCustomization.cpp
+++ b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetDetailsCustomization.cpp
@@ -60,6 +60,10 @@ namespace
TargetPreset.DisplayName = SourcePreset.DisplayName;
TargetPreset.Description = SourcePreset.Description;
TargetPreset.MorphTargets = SourcePreset.MorphTargets;
+ TargetPreset.Montage = SourcePreset.Montage;
+ TargetPreset.MontagePlayRate = SourcePreset.MontagePlayRate;
+ TargetPreset.MontageStartTime = SourcePreset.MontageStartTime;
+ TargetPreset.PreviewIKRetargeter = SourcePreset.PreviewIKRetargeter;
TargetPreset.Duration = SourcePreset.Duration;
TargetPreset.bLoop = SourcePreset.bLoop;
TargetPreset.LoopDelay = SourcePreset.LoopDelay;
diff --git a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetEditorController.cpp b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetEditorController.cpp
index fe461ed..866535c 100644
--- a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetEditorController.cpp
+++ b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetEditorController.cpp
@@ -3,6 +3,9 @@
#include "Morph/Editor/MorphPresetEditorController.h"
#include "Animation/AnimData/IAnimationDataController.h"
+#include "Animation/AnimCompositeBase.h"
+#include "Animation/AnimMontage.h"
+#include "Animation/AnimSingleNodeInstance.h"
#include "AnimPreviewInstance.h"
#include "Animation/AnimSequence.h"
#include "Animation/DebugSkelMeshComponent.h"
@@ -18,8 +21,10 @@
#include "Morph/LipSyncMappingDataAsset.h"
#include "Morph/MorphControllerComponent.h"
#include "Morph/MorphPresetDataAsset.h"
+#include "Morph/Editor/MorphPresetRetargetPreviewAnimInstance.h"
#include "PersonaModule.h"
#include "ReferenceSkeleton.h"
+#include "Retargeter/IKRetargeter.h"
#include "Sound/SoundBase.h"
DEFINE_LOG_CATEGORY_STATIC(LogMorphPresetEditorPreview, Log, All);
@@ -31,6 +36,7 @@ namespace
IAnimationDataController& Controller = AnimSequence.GetController();
Controller.SetNumberOfFrames(FMath::Max(Controller.ConvertSecondsToFrameNumber(PlayLength).Value, 1), bShouldTransact);
}
+
}
FMorphPresetEditorController::FMorphPresetEditorController(UMorphPresetDataAsset* InPreset)
@@ -45,6 +51,7 @@ FMorphPresetEditorController::~FMorphPresetEditorController()
{
StopLipSyncPreviewAudio();
DestroyLipSyncPreviewComponents();
+ DestroyAnimationPreviewMesh();
if (PersonaToolkit.IsValid())
{
@@ -76,6 +83,36 @@ USkeletalMesh* FMorphPresetEditorController::GetPreviewMesh() const
return nullptr;
}
+USkeletalMesh* FMorphPresetEditorController::GetAnimationPreviewMesh() const
+{
+ if (UIKRetargeter* Retargeter = GetPreviewIKRetargeter())
+ {
+ return Retargeter->GetPreviewMesh(ERetargetSourceOrTarget::Source);
+ }
+
+ return nullptr;
+}
+
+UAnimMontage* FMorphPresetEditorController::GetPreviewMontage() const
+{
+ if (const UMorphPresetDataAsset* PresetAsset = Preset.Get())
+ {
+ return PresetAsset->Montage.LoadSynchronous();
+ }
+
+ return nullptr;
+}
+
+UIKRetargeter* FMorphPresetEditorController::GetPreviewIKRetargeter() const
+{
+ if (const UMorphPresetDataAsset* PresetAsset = Preset.Get())
+ {
+ return PresetAsset->PreviewIKRetargeter.LoadSynchronous();
+ }
+
+ return nullptr;
+}
+
bool FMorphPresetEditorController::SetPreviewMesh(USkeletalMesh* InPreviewMesh)
{
UMorphPresetDataAsset* PresetAsset = Preset.Get();
@@ -93,7 +130,71 @@ bool FMorphPresetEditorController::SetPreviewMesh(USkeletalMesh* InPreviewMesh)
PresetAsset->PreviewMesh = InPreviewMesh;
PresetAsset->MarkPackageDirty();
- RebuildPreviewScene();
+ if (!InPreviewMesh || !GetPreviewScene().IsValid())
+ {
+ RebuildPreviewScene();
+ PresetChanged.Broadcast();
+ return true;
+ }
+
+ if (TSharedPtr PreviewScene = GetPreviewScene())
+ {
+ StopLipSyncPreviewAudio();
+ DestroyLipSyncPreviewComponents();
+ DestroyAnimationPreviewMesh();
+ PreviewScene->SetPreviewMesh(InPreviewMesh, false);
+ ActivePreviewMesh = InPreviewMesh;
+ RebuildPreviewAnimation();
+ RebuildAnimationPreviewMesh();
+ RebuildLipSyncPreviewComponents();
+ SetCurrentTime(CurrentTime);
+ PresetChanged.Broadcast();
+ }
+
+ return true;
+}
+
+bool FMorphPresetEditorController::SetPreviewMontage(UAnimMontage* InMontage)
+{
+ UMorphPresetDataAsset* PresetAsset = Preset.Get();
+ if (!PresetAsset)
+ {
+ return false;
+ }
+
+ if (PresetAsset->Montage.Get() == InMontage)
+ {
+ return false;
+ }
+
+ PresetAsset->Modify();
+ PresetAsset->Montage = InMontage;
+ PresetAsset->MarkPackageDirty();
+
+ RebuildAnimationPreviewMesh();
+ PlaybackStateChanged.Broadcast();
+ return true;
+}
+
+bool FMorphPresetEditorController::SetPreviewIKRetargeter(UIKRetargeter* InRetargeter)
+{
+ UMorphPresetDataAsset* PresetAsset = Preset.Get();
+ if (!PresetAsset)
+ {
+ return false;
+ }
+
+ if (PresetAsset->PreviewIKRetargeter.Get() == InRetargeter)
+ {
+ return false;
+ }
+
+ PresetAsset->Modify();
+ PresetAsset->PreviewIKRetargeter = InRetargeter;
+ PresetAsset->MarkPackageDirty();
+
+ ConfigureRetargetPreview();
+ PlaybackStateChanged.Broadcast();
return true;
}
@@ -112,7 +213,12 @@ float FMorphPresetEditorController::GetTimelineLength() const
{
if (const UMorphPresetDataAsset* PresetAsset = Preset.Get())
{
- return FMath::Max(PresetAsset->GetTimelineLength(), 0.1f);
+ float TimelineLength = FMath::Max(PresetAsset->GetTimelineLength(), 0.1f);
+ if (const UAnimMontage* Montage = PresetAsset->GetMontage())
+ {
+ TimelineLength = FMath::Max(TimelineLength, FMath::Max(PresetAsset->MontageStartTime, 0.0f) + Montage->GetPlayLength());
+ }
+ return FMath::Max(TimelineLength, 0.1f);
}
return 1.0f;
@@ -134,8 +240,11 @@ void FMorphPresetEditorController::SetCurrentTime(float InTime)
if (PreviewMeshComponent->PreviewInstance)
{
PreviewMeshComponent->PreviewInstance->SetPlaying(false);
- PreviewMeshComponent->PreviewInstance->SetPosition(CurrentTime, false);
- RefreshPreviewAnimationPose();
+ if (!HasRetargetPreview())
+ {
+ PreviewMeshComponent->PreviewInstance->SetPosition(CurrentTime, false);
+ RefreshPreviewAnimationPose();
+ }
}
}
}
@@ -224,6 +333,12 @@ void FMorphPresetEditorController::NotifyPresetEdited(bool bBroadcastPresetChang
return;
}
+ if (ActiveAnimationPreviewMesh.Get() != GetAnimationPreviewMesh() ||
+ ActivePreviewIKRetargeter.Get() != GetPreviewIKRetargeter())
+ {
+ RebuildAnimationPreviewMesh();
+ }
+
if (!PreviewAnimation.IsValid())
{
RebuildPreviewAnimation();
@@ -261,6 +376,12 @@ void FMorphPresetEditorController::TogglePlaying()
void FMorphPresetEditorController::Tick(float DeltaTime)
{
+ if (LastTickFrameNumber == GFrameCounter)
+ {
+ return;
+ }
+ LastTickFrameNumber = GFrameCounter;
+
if (bIsPlaying)
{
float NewTime = CurrentTime + DeltaTime;
@@ -422,8 +543,12 @@ void FMorphPresetEditorController::RebuildPreviewScene()
{
StopLipSyncPreviewAudio();
DestroyLipSyncPreviewComponents();
+ DestroyAnimationPreviewMesh();
PersonaToolkit.Reset();
PreviewAnimation.Reset();
+ AnimationPreviewMeshComponent.Reset();
+ ActiveAnimationPreviewMesh.Reset();
+ ActivePreviewIKRetargeter.Reset();
USkeletalMesh* PreviewMesh = GetPreviewMesh();
ActivePreviewMesh = PreviewMesh;
@@ -438,6 +563,7 @@ void FMorphPresetEditorController::RebuildPreviewScene()
PersonaToolkit = PersonaModule.CreatePersonaToolkit(PreviewMesh, ToolkitArgs);
RebuildPreviewAnimation();
+ RebuildAnimationPreviewMesh();
RebuildLipSyncPreviewComponents();
SetCurrentTime(CurrentTime);
PreviewSceneChanged.Broadcast();
@@ -483,6 +609,205 @@ void FMorphPresetEditorController::RebuildPreviewAnimation()
}
}
+void FMorphPresetEditorController::RebuildAnimationPreviewMesh()
+{
+ TSharedPtr PreviewScene = GetPreviewScene();
+ if (!PreviewScene.IsValid())
+ {
+ return;
+ }
+
+ DestroyAnimationPreviewMesh();
+
+ UMorphPresetDataAsset* PresetAsset = Preset.Get();
+ USkeletalMesh* AnimationMesh = GetAnimationPreviewMesh();
+ ActiveAnimationPreviewMesh = AnimationMesh;
+ PreviewStatusText = FText::GetEmpty();
+
+ if (!PresetAsset || !AnimationMesh)
+ {
+ ConfigureRetargetPreview();
+ return;
+ }
+
+ AActor* PreviewActor = PreviewScene->GetActor();
+ if (!PreviewActor)
+ {
+ return;
+ }
+
+ USkeletalMeshComponent* AnimationMeshComponent = NewObject(PreviewActor, NAME_None, RF_Transient);
+ if (!AnimationMeshComponent)
+ {
+ return;
+ }
+
+ AnimationMeshComponent->SetSkeletalMesh(AnimationMesh);
+ AnimationMeshComponent->SetAnimationMode(EAnimationMode::AnimationSingleNode);
+ AnimationMeshComponent->bSelectable = false;
+ AnimationMeshComponent->SetVisibility(false, true);
+ AnimationMeshComponent->VisibilityBasedAnimTickOption = EVisibilityBasedAnimTickOption::AlwaysTickPoseAndRefreshBones;
+ const FVector SourceMeshOffset = GetPreviewIKRetargeter() ? GetPreviewIKRetargeter()->SourceMeshOffset : FVector(0.0f, 80.0f, 0.0f);
+ PreviewScene->AddComponent(AnimationMeshComponent, FTransform(SourceMeshOffset));
+ AnimationPreviewMeshComponent = AnimationMeshComponent;
+
+ if (UAnimMontage* Montage = GetPreviewMontage())
+ {
+ float MontageAssetTime = 0.0f;
+ float MontageAssetLength = Montage->GetPlayLength();
+ UAnimationAsset* PreviewAsset = ResolveMontagePreviewAnimation(MontageAssetTime, MontageAssetLength);
+ AnimationMeshComponent->SetAnimation(PreviewAsset ? PreviewAsset : Montage);
+ AnimationMeshComponent->SetPlayRate(1.0f);
+ AnimationMeshComponent->SetPosition(FMath::Clamp(MontageAssetTime, 0.0f, MontageAssetLength), false);
+ if (UAnimSingleNodeInstance* SingleNodeInstance = AnimationMeshComponent->GetSingleNodeInstance())
+ {
+ SingleNodeInstance->SetLooping(PresetAsset->bLoop);
+ SingleNodeInstance->SetPlaying(false);
+ }
+ }
+ else
+ {
+ PreviewStatusText = FText::FromString(TEXT("Animation Preview Mesh is set, but this preset has no Montage assigned."));
+ }
+
+ ConfigureRetargetPreview();
+
+ RefreshAnimationPreviewPose();
+}
+
+void FMorphPresetEditorController::DestroyAnimationPreviewMesh()
+{
+ ClearRetargetPreview(false);
+
+ if (TSharedPtr PreviewScene = GetPreviewScene())
+ {
+ if (USkeletalMeshComponent* ExistingComponent = AnimationPreviewMeshComponent.Get())
+ {
+ PreviewScene->RemoveComponent(ExistingComponent);
+ ExistingComponent->DestroyComponent();
+ }
+ }
+
+ AnimationPreviewMeshComponent.Reset();
+ ActiveAnimationPreviewMesh.Reset();
+}
+
+void FMorphPresetEditorController::ConfigureRetargetPreview()
+{
+ TSharedPtr PreviewScene = GetPreviewScene();
+ if (!PreviewScene.IsValid())
+ {
+ return;
+ }
+
+ UDebugSkelMeshComponent* PreviewMeshComponent = PreviewScene->GetPreviewMeshComponent();
+ USkeletalMeshComponent* SourceMeshComponent = AnimationPreviewMeshComponent.Get();
+ UIKRetargeter* Retargeter = GetPreviewIKRetargeter();
+ if (!PreviewMeshComponent || !SourceMeshComponent || !Retargeter)
+ {
+ ClearRetargetPreview(true);
+ return;
+ }
+
+ ClearRetargetPreview(false);
+
+ const FName InstanceName = MakeUniqueObjectName(PreviewMeshComponent, UMorphPresetRetargetPreviewAnimInstance::StaticClass(), TEXT("MorphPresetTargetRetargetPreviewInstance"));
+ UMorphPresetRetargetPreviewAnimInstance* RetargetAnimInstance = NewObject(PreviewMeshComponent, InstanceName, RF_Transient);
+ if (!RetargetAnimInstance)
+ {
+ return;
+ }
+
+ PreviewMeshComponent->SetAnimationMode(EAnimationMode::AnimationCustomMode);
+ PreviewMeshComponent->AnimScriptInstance = RetargetAnimInstance;
+ PreviewMeshComponent->VisibilityBasedAnimTickOption = EVisibilityBasedAnimTickOption::AlwaysTickPoseAndRefreshBones;
+ PreviewMeshComponent->SetProcessRootMotionMode(EProcessRootMotionMode::Ignore);
+ RetargetAnimInstance->Configure(Retargeter, SourceMeshComponent);
+ RetargetAnimInstance->InitializeAnimation();
+ RetargetPreviewInstance = RetargetAnimInstance;
+ ActivePreviewIKRetargeter = Retargeter;
+}
+
+void FMorphPresetEditorController::ClearRetargetPreview(bool bRestorePreviewAnimation)
+{
+ TSharedPtr PreviewScene = GetPreviewScene();
+ UDebugSkelMeshComponent* PreviewMeshComponent = PreviewScene.IsValid() ? PreviewScene->GetPreviewMeshComponent() : nullptr;
+ UMorphPresetRetargetPreviewAnimInstance* RetargetAnimInstance = RetargetPreviewInstance.Get();
+
+ if (PreviewMeshComponent && RetargetAnimInstance && PreviewMeshComponent->AnimScriptInstance == RetargetAnimInstance)
+ {
+ PreviewMeshComponent->ClearAnimScriptInstance();
+ }
+
+ RetargetPreviewInstance.Reset();
+ if (ActivePreviewIKRetargeter.IsValid())
+ {
+ ActivePreviewIKRetargeter.Reset();
+ if (bRestorePreviewAnimation)
+ {
+ RebuildPreviewAnimation();
+ }
+ }
+}
+
+UAnimationAsset* FMorphPresetEditorController::ResolveMontagePreviewAnimation(float& OutAssetTime, float& OutAssetLength) const
+{
+ OutAssetTime = 0.0f;
+ OutAssetLength = 0.0f;
+
+ const UMorphPresetDataAsset* PresetAsset = Preset.Get();
+ UAnimMontage* Montage = GetPreviewMontage();
+ if (!PresetAsset || !Montage)
+ {
+ return nullptr;
+ }
+
+ const float MontageTrackTime = FMath::Clamp(CurrentTime - FMath::Max(PresetAsset->MontageStartTime, 0.0f), 0.0f, Montage->GetPlayLength());
+
+ const FAnimSegment* FirstSegment = nullptr;
+ const FAnimSegment* LastSegment = nullptr;
+ for (const FSlotAnimationTrack& SlotTrack : Montage->SlotAnimTracks)
+ {
+ for (const FAnimSegment& Segment : SlotTrack.AnimTrack.AnimSegments)
+ {
+ if (!Segment.GetAnimReference())
+ {
+ continue;
+ }
+
+ if (!FirstSegment)
+ {
+ FirstSegment = &Segment;
+ }
+ LastSegment = &Segment;
+ if (Segment.IsInRange(MontageTrackTime))
+ {
+ OutAssetTime = Segment.ConvertTrackPosToAnimPos(MontageTrackTime);
+ OutAssetLength = Segment.GetAnimReference()->GetPlayLength();
+ return Segment.GetAnimReference();
+ }
+ }
+ }
+
+ const FAnimSegment* FallbackSegment = MontageTrackTime <= 0.0f ? FirstSegment : LastSegment;
+ if (FallbackSegment && FallbackSegment->GetAnimReference())
+ {
+ const float SegmentTrackTime = FMath::Clamp(MontageTrackTime, FallbackSegment->StartPos, FallbackSegment->GetEndPos());
+ OutAssetTime = FallbackSegment->ConvertTrackPosToAnimPos(SegmentTrackTime);
+ OutAssetLength = FallbackSegment->GetAnimReference()->GetPlayLength();
+ return FallbackSegment->GetAnimReference();
+ }
+
+ OutAssetLength = Montage->GetPlayLength();
+ OutAssetTime = MontageTrackTime;
+ return Montage;
+}
+
+bool FMorphPresetEditorController::HasRetargetPreview() const
+{
+ return ActivePreviewIKRetargeter.IsValid() && AnimationPreviewMeshComponent.IsValid() && RetargetPreviewInstance.IsValid();
+}
+
void FMorphPresetEditorController::RefreshPreviewAnimationPose()
{
TSharedPtr PreviewScene = GetPreviewScene();
@@ -503,6 +828,36 @@ void FMorphPresetEditorController::RefreshPreviewAnimationPose()
PreviewScene->InvalidateViews();
}
+void FMorphPresetEditorController::RefreshAnimationPreviewPose()
+{
+ const UMorphPresetDataAsset* PresetAsset = Preset.Get();
+ TSharedPtr PreviewScene = GetPreviewScene();
+ USkeletalMeshComponent* AnimationMeshComponent = AnimationPreviewMeshComponent.Get();
+ if (!PresetAsset || !PreviewScene.IsValid() || !AnimationMeshComponent)
+ {
+ return;
+ }
+
+ if (UAnimSingleNodeInstance* SingleNodeInstance = AnimationMeshComponent->GetSingleNodeInstance())
+ {
+ float MontageAssetTime = 0.0f;
+ float MontageAssetLength = 0.0f;
+ UAnimationAsset* PreviewAsset = ResolveMontagePreviewAnimation(MontageAssetTime, MontageAssetLength);
+ if (PreviewAsset && SingleNodeInstance->GetCurrentAsset() != PreviewAsset)
+ {
+ SingleNodeInstance->SetAnimationAsset(PreviewAsset, PresetAsset->bLoop);
+ }
+
+ SingleNodeInstance->SetPlaying(false);
+ SingleNodeInstance->SetPosition(FMath::Clamp(MontageAssetTime, 0.0f, MontageAssetLength), false);
+ }
+
+ AnimationMeshComponent->TickAnimation(0.0f, false);
+ AnimationMeshComponent->RefreshBoneTransforms();
+ AnimationMeshComponent->MarkRenderStateDirty();
+ PreviewScene->InvalidateViews();
+}
+
void FMorphPresetEditorController::ApplyPresetToPreview()
{
const UMorphPresetDataAsset* PresetAsset = Preset.Get();
@@ -538,6 +893,7 @@ void FMorphPresetEditorController::ApplyPresetToPreview()
PreviewMeshComponent->SetMorphTarget(Pair.Key, Pair.Value, false);
}
+ RefreshAnimationPreviewPose();
RefreshPreviewAnimationPose();
}
diff --git a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetRetargetPreviewAnimInstance.cpp b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetRetargetPreviewAnimInstance.cpp
new file mode 100644
index 0000000..6985fec
--- /dev/null
+++ b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetRetargetPreviewAnimInstance.cpp
@@ -0,0 +1,111 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#include "Morph/Editor/MorphPresetRetargetPreviewAnimInstance.h"
+
+#include "Retargeter/IKRetargeter.h"
+
+#include UE_INLINE_GENERATED_CPP_BY_NAME(MorphPresetRetargetPreviewAnimInstance)
+
+FMorphPresetRetargetPreviewAnimInstanceProxy::FMorphPresetRetargetPreviewAnimInstanceProxy(
+ UAnimInstance* InAnimInstance,
+ FAnimNode_RetargetPoseFromMesh* InRetargetNode)
+ : FAnimInstanceProxy(InAnimInstance)
+ , RetargetNode(InRetargetNode)
+{
+}
+
+void FMorphPresetRetargetPreviewAnimInstanceProxy::Initialize(UAnimInstance* InAnimInstance)
+{
+ FAnimInstanceProxy::Initialize(InAnimInstance);
+
+ FAnimationInitializeContext InitContext(this);
+ RetargetNode->Initialize_AnyThread(InitContext);
+}
+
+void FMorphPresetRetargetPreviewAnimInstanceProxy::PreUpdate(UAnimInstance* InAnimInstance, float DeltaSeconds)
+{
+ FAnimInstanceProxy::PreUpdate(InAnimInstance, DeltaSeconds);
+
+ if (RetargetNode && RetargetNode->HasPreUpdate())
+ {
+ RetargetNode->PreUpdate(InAnimInstance);
+ }
+}
+
+void FMorphPresetRetargetPreviewAnimInstanceProxy::CacheBones()
+{
+ if (bBoneCachesInvalidated && RetargetNode)
+ {
+ FAnimationCacheBonesContext Context(this);
+ RetargetNode->CacheBones_AnyThread(Context);
+ bBoneCachesInvalidated = false;
+ }
+}
+
+bool FMorphPresetRetargetPreviewAnimInstanceProxy::Evaluate(FPoseContext& Output)
+{
+ FAnimInstanceProxy::Evaluate(Output);
+
+ if (RetargetNode)
+ {
+ RetargetNode->Evaluate_AnyThread(Output);
+ }
+ return true;
+}
+
+void FMorphPresetRetargetPreviewAnimInstanceProxy::UpdateAnimationNode(const FAnimationUpdateContext& InContext)
+{
+ FAnimInstanceProxy::UpdateAnimationNode(InContext);
+ UpdateCounter.Increment();
+
+ if (RetargetNode)
+ {
+ RetargetNode->Update_AnyThread(InContext);
+ }
+}
+
+void FMorphPresetRetargetPreviewAnimInstanceProxy::Configure(
+ UIKRetargeter* InRetargeter,
+ TWeakObjectPtr InSourceMeshComponent)
+{
+ if (!RetargetNode)
+ {
+ return;
+ }
+
+ RetargetNode->IKRetargeterAsset = InRetargeter;
+ RetargetNode->RetargetFrom = ERetargetSourceMode::CustomSkeletalMeshComponent;
+ RetargetNode->SourceMeshComponent = InSourceMeshComponent;
+ RetargetNode->CustomRetargetProfile = FRetargetProfile();
+ RetargetNode->bSuppressWarnings = false;
+
+ if (FIKRetargetProcessor* Processor = RetargetNode->GetRetargetProcessor())
+ {
+ Processor->SetNeedsInitialized();
+ }
+}
+
+UMorphPresetRetargetPreviewAnimInstance::UMorphPresetRetargetPreviewAnimInstance(const FObjectInitializer& ObjectInitializer)
+ : Super(ObjectInitializer)
+{
+ bUseMultiThreadedAnimationUpdate = false;
+}
+
+void UMorphPresetRetargetPreviewAnimInstance::Configure(
+ UIKRetargeter* InRetargeter,
+ TWeakObjectPtr InSourceMeshComponent)
+{
+ FMorphPresetRetargetPreviewAnimInstanceProxy& Proxy = GetProxyOnGameThread();
+ Proxy.Configure(InRetargeter, InSourceMeshComponent);
+}
+
+void UMorphPresetRetargetPreviewAnimInstance::NativeInitializeAnimation()
+{
+ FMorphPresetRetargetPreviewAnimInstanceProxy& Proxy = GetProxyOnGameThread();
+ Proxy.Initialize(this);
+}
+
+FAnimInstanceProxy* UMorphPresetRetargetPreviewAnimInstance::CreateAnimInstanceProxy()
+{
+ return new FMorphPresetRetargetPreviewAnimInstanceProxy(this, &RetargetNode);
+}
diff --git a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetTimelinePanel.cpp b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetTimelinePanel.cpp
index ac59844..edfa48e 100644
--- a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetTimelinePanel.cpp
+++ b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetTimelinePanel.cpp
@@ -9,6 +9,7 @@
#include "Morph/MorphPresetDataAsset.h"
#include "Morph/Editor/MorphPresetEditorController.h"
#include "Morph/AnimTimeline/SAnimEditorBase.h"
+#include "Animation/AnimMontage.h"
#include "Animation/MorphTarget.h"
#include "Curves/RichCurve.h"
#include "Framework/Application/SlateApplication.h"
@@ -159,6 +160,152 @@ namespace
TWeakPtr Controller;
};
+ class SMorphPresetMontageLane : public SLeafWidget
+ {
+ public:
+ SLATE_BEGIN_ARGS(SMorphPresetMontageLane) {}
+ SLATE_ARGUMENT(TWeakPtr, Controller)
+ SLATE_END_ARGS()
+
+ void Construct(const FArguments& InArgs)
+ {
+ Controller = InArgs._Controller;
+ }
+
+ virtual FVector2D ComputeDesiredSize(float) const override
+ {
+ return FVector2D(320.0f, 44.0f);
+ }
+
+ virtual int32 OnPaint(const FPaintArgs&, const FGeometry& AllottedGeometry, const FSlateRect&, FSlateWindowElementList& OutDrawElements,
+ int32 LayerId, const FWidgetStyle&, bool) const override
+ {
+ const TSharedPtr PinnedController = Controller.Pin();
+ const UMorphPresetDataAsset* Preset = PinnedController.IsValid() ? PinnedController->GetPreset() : nullptr;
+ const UAnimMontage* Montage = Preset ? Preset->GetMontage() : nullptr;
+ const float TimelineLength = PinnedController.IsValid() ? FMath::Max(PinnedController->GetTimelineLength(), 0.01f) : 1.0f;
+ const float Width = AllottedGeometry.GetLocalSize().X;
+ const float Height = AllottedGeometry.GetLocalSize().Y;
+
+ FSlateDrawElement::MakeBox(OutDrawElements, LayerId, AllottedGeometry.ToPaintGeometry(), FAppStyle::GetBrush("WhiteBrush"),
+ ESlateDrawEffect::None, FLinearColor(0.075f, 0.08f, 0.09f, 1.0f));
+
+ if (Preset && Montage)
+ {
+ const float MontageDuration = Montage->GetPlayLength();
+ const float StartTime = FMath::Max(Preset->MontageStartTime, 0.0f);
+ const float StartX = Width * (StartTime / TimelineLength);
+ const float EndX = Width * ((StartTime + MontageDuration) / TimelineLength);
+ const float BlockWidth = FMath::Max(EndX - StartX, 2.0f);
+ const FLinearColor BlockColor = bIsDragging ? FLinearColor(0.55f, 0.38f, 0.11f, 1.0f) : FLinearColor(0.36f, 0.22f, 0.48f, 1.0f);
+
+ FSlateDrawElement::MakeBox(OutDrawElements, LayerId + 1,
+ AllottedGeometry.ToPaintGeometry(FVector2f(BlockWidth, Height - 6.0f), FSlateLayoutTransform(FVector2f(StartX, 3.0f))),
+ FAppStyle::GetBrush("WhiteBrush"), ESlateDrawEffect::None, BlockColor);
+
+ const FString Label = FString::Printf(TEXT("%s %.2fs"), *Montage->GetName(), MontageDuration);
+ FSlateDrawElement::MakeText(
+ OutDrawElements,
+ LayerId + 2,
+ AllottedGeometry.ToPaintGeometry(FVector2f(FMath::Max(BlockWidth - 10.0f, 1.0f), Height), FSlateLayoutTransform(FVector2f(StartX + 6.0f, 12.0f))),
+ Label,
+ FAppStyle::GetFontStyle("SmallFont"),
+ ESlateDrawEffect::None,
+ FLinearColor::White);
+ }
+
+ if (PinnedController.IsValid())
+ {
+ const float CurrentX = Width * (PinnedController->GetCurrentTime() / TimelineLength);
+ TArray Points{ FVector2D(CurrentX, 0.0f), FVector2D(CurrentX, Height) };
+ FSlateDrawElement::MakeLines(OutDrawElements, LayerId + 3, AllottedGeometry.ToPaintGeometry(), Points,
+ ESlateDrawEffect::None, FLinearColor(1.0f, 0.5f, 0.25f, 1.0f), true, 2.0f);
+ }
+
+ return LayerId + 3;
+ }
+
+ virtual FReply OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override
+ {
+ if (MouseEvent.GetEffectingButton() != EKeys::LeftMouseButton)
+ {
+ return FReply::Unhandled();
+ }
+
+ const TSharedPtr PinnedController = Controller.Pin();
+ UMorphPresetDataAsset* Preset = PinnedController.IsValid() ? PinnedController->GetPreset() : nullptr;
+ if (!Preset || !Preset->GetMontage())
+ {
+ return FReply::Unhandled();
+ }
+
+ const float Width = FMath::Max(MyGeometry.GetLocalSize().X, 1.0f);
+ const float TimelineLength = FMath::Max(PinnedController->GetTimelineLength(), 0.01f);
+ const float LocalX = MyGeometry.AbsoluteToLocal(MouseEvent.GetScreenSpacePosition()).X;
+ const float MontageDuration = Preset->GetMontage()->GetPlayLength();
+ const float MontageStartX = Width * (FMath::Max(Preset->MontageStartTime, 0.0f) / TimelineLength);
+ const float MontageEndX = Width * ((FMath::Max(Preset->MontageStartTime, 0.0f) + MontageDuration) / TimelineLength);
+
+ if (LocalX < MontageStartX || LocalX > MontageEndX)
+ {
+ return FReply::Unhandled();
+ }
+
+ Preset->Modify();
+ InitialStartTime = FMath::Max(Preset->MontageStartTime, 0.0f);
+ InitialTimelineLength = TimelineLength;
+ DragStartLocalX = LocalX;
+ bIsDragging = true;
+ PinnedController->SetPlaying(false);
+ return FReply::Handled().CaptureMouse(AsShared()).PreventThrottling();
+ }
+
+ virtual FReply OnMouseMove(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override
+ {
+ if (!bIsDragging || !HasMouseCapture())
+ {
+ return FReply::Unhandled();
+ }
+
+ const TSharedPtr PinnedController = Controller.Pin();
+ UMorphPresetDataAsset* Preset = PinnedController.IsValid() ? PinnedController->GetPreset() : nullptr;
+ if (!Preset)
+ {
+ return FReply::Unhandled();
+ }
+
+ const float Width = FMath::Max(MyGeometry.GetLocalSize().X, 1.0f);
+ const float DeltaX = MyGeometry.AbsoluteToLocal(MouseEvent.GetScreenSpacePosition()).X - DragStartLocalX;
+ const float DeltaTime = (DeltaX / Width) * InitialTimelineLength;
+ Preset->MontageStartTime = FMath::Max(InitialStartTime + DeltaTime, 0.0f);
+ PinnedController->NotifyPresetEdited(false);
+ Invalidate(EInvalidateWidgetReason::Paint);
+ return FReply::Handled().PreventThrottling();
+ }
+
+ virtual FReply OnMouseButtonUp(const FGeometry&, const FPointerEvent& MouseEvent) override
+ {
+ if (MouseEvent.GetEffectingButton() != EKeys::LeftMouseButton || !bIsDragging)
+ {
+ return FReply::Unhandled();
+ }
+
+ bIsDragging = false;
+ if (const TSharedPtr PinnedController = Controller.Pin())
+ {
+ PinnedController->NotifyPresetEdited(true);
+ }
+ return FReply::Handled().ReleaseMouseCapture();
+ }
+
+ private:
+ TWeakPtr Controller;
+ float DragStartLocalX = 0.0f;
+ float InitialStartTime = 0.0f;
+ float InitialTimelineLength = 1.0f;
+ bool bIsDragging = false;
+ };
+
class SMorphPresetClipLane : public SLeafWidget
{
public:
@@ -1000,6 +1147,29 @@ namespace
]
]
+ SVerticalBox::Slot()
+ .AutoHeight()
+ .Padding(TimelineEdgePadding, 0.0f, TimelineEdgePadding, 6.0f)
+ [
+ SNew(SHorizontalBox)
+ + SHorizontalBox::Slot()
+ .AutoWidth()
+ .Padding(FMargin(0.0f, 0.0f, 8.0f, 0.0f))
+ [
+ SNew(SBox)
+ .WidthOverride(TimelineNameColumnWidth)
+ [
+ SNew(STextBlock)
+ .Text(LOCTEXT("HeaderMontage", "Montage"))
+ ]
+ ]
+ + SHorizontalBox::Slot()
+ .FillWidth(1.0f)
+ [
+ SNew(SMorphPresetMontageLane)
+ .Controller(Controller)
+ ]
+ ]
+ + SVerticalBox::Slot()
.FillHeight(1.0f)
[
SAssignNew(LocalScrollBox, SScrollBox)
diff --git a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetViewportPanel.cpp b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetViewportPanel.cpp
index 1a7fede..2df0f93 100644
--- a/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetViewportPanel.cpp
+++ b/Source/FunnyGirlEditor/Private/Morph/Editor/MorphPresetViewportPanel.cpp
@@ -4,6 +4,7 @@
#include "AssetRegistry/AssetData.h"
#include "AdvancedPreviewScene.h"
+#include "Animation/AnimMontage.h"
#include "Animation/DebugSkelMeshComponent.h"
#include "EditorViewportClient.h"
#include "Engine/SkeletalMesh.h"
@@ -11,6 +12,7 @@
#include "Morph/LipSyncMappingDataAsset.h"
#include "Morph/Editor/MorphPresetEditorController.h"
#include "PropertyCustomizationHelpers.h"
+#include "Retargeter/IKRetargeter.h"
#include "SEditorViewport.h"
#include "Sound/SoundBase.h"
#include "ToolMenus.h"
@@ -200,7 +202,6 @@ void SMorphPresetViewportPanel::Construct(const FArguments& InArgs)
if (Controller.IsValid())
{
Controller->OnPreviewSceneChanged().AddSP(this, &SMorphPresetViewportPanel::RebuildContent);
- Controller->OnPresetChanged().AddSP(this, &SMorphPresetViewportPanel::RebuildContent);
}
ChildSlot
@@ -218,7 +219,6 @@ SMorphPresetViewportPanel::~SMorphPresetViewportPanel()
if (Controller.IsValid())
{
Controller->OnPreviewSceneChanged().RemoveAll(this);
- Controller->OnPresetChanged().RemoveAll(this);
}
}
@@ -268,6 +268,51 @@ void SMorphPresetViewportPanel::RebuildContent()
+ SVerticalBox::Slot()
.AutoHeight()
.Padding(0.0f, 0.0f, 0.0f, 8.0f)
+ [
+ SNew(SHorizontalBox)
+ + SHorizontalBox::Slot()
+ .AutoWidth()
+ .VAlign(VAlign_Center)
+ .Padding(0.0f, 0.0f, 8.0f, 0.0f)
+ [
+ SNew(STextBlock)
+ .Text(LOCTEXT("PreviewMontageLabel", "Montage"))
+ ]
+ + SHorizontalBox::Slot()
+ .FillWidth(1.0f)
+ .Padding(0.0f, 0.0f, 8.0f, 0.0f)
+ [
+ SNew(SObjectPropertyEntryBox)
+ .AllowedClass(UAnimMontage::StaticClass())
+ .ObjectPath(this, &SMorphPresetViewportPanel::GetSelectedPreviewMontagePath)
+ .OnObjectChanged(this, &SMorphPresetViewportPanel::OnPreviewMontageChanged)
+ .DisplayUseSelected(true)
+ .DisplayBrowse(true)
+ .AllowClear(true)
+ ]
+ + SHorizontalBox::Slot()
+ .AutoWidth()
+ .VAlign(VAlign_Center)
+ .Padding(12.0f, 0.0f, 8.0f, 0.0f)
+ [
+ SNew(STextBlock)
+ .Text(LOCTEXT("PreviewRetargeterLabel", "IK Retargeter"))
+ ]
+ + SHorizontalBox::Slot()
+ .FillWidth(1.0f)
+ [
+ SNew(SObjectPropertyEntryBox)
+ .AllowedClass(UIKRetargeter::StaticClass())
+ .ObjectPath(this, &SMorphPresetViewportPanel::GetSelectedPreviewIKRetargeterPath)
+ .OnObjectChanged(this, &SMorphPresetViewportPanel::OnPreviewIKRetargeterChanged)
+ .DisplayUseSelected(true)
+ .DisplayBrowse(true)
+ .AllowClear(true)
+ ]
+ ]
+ + SVerticalBox::Slot()
+ .AutoHeight()
+ .Padding(0.0f, 0.0f, 0.0f, 8.0f)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
@@ -380,6 +425,22 @@ void SMorphPresetViewportPanel::OnPreviewMeshChanged(const FAssetData& AssetData
}
}
+void SMorphPresetViewportPanel::OnPreviewMontageChanged(const FAssetData& AssetData)
+{
+ if (Controller.IsValid())
+ {
+ Controller->SetPreviewMontage(Cast(AssetData.GetAsset()));
+ }
+}
+
+void SMorphPresetViewportPanel::OnPreviewIKRetargeterChanged(const FAssetData& AssetData)
+{
+ if (Controller.IsValid())
+ {
+ Controller->SetPreviewIKRetargeter(Cast(AssetData.GetAsset()));
+ }
+}
+
void SMorphPresetViewportPanel::OnLipSyncSoundChanged(const FAssetData& AssetData)
{
if (Controller.IsValid())
@@ -409,6 +470,32 @@ FString SMorphPresetViewportPanel::GetSelectedPreviewMeshPath() const
return FString();
}
+FString SMorphPresetViewportPanel::GetSelectedPreviewMontagePath() const
+{
+ if (Controller.IsValid())
+ {
+ if (UAnimMontage* Montage = Controller->GetPreviewMontage())
+ {
+ return Montage->GetPathName();
+ }
+ }
+
+ return FString();
+}
+
+FString SMorphPresetViewportPanel::GetSelectedPreviewIKRetargeterPath() const
+{
+ if (Controller.IsValid())
+ {
+ if (UIKRetargeter* Retargeter = Controller->GetPreviewIKRetargeter())
+ {
+ return Retargeter->GetPathName();
+ }
+ }
+
+ return FString();
+}
+
FString SMorphPresetViewportPanel::GetSelectedLipSyncSoundPath() const
{
if (Controller.IsValid())
diff --git a/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetEditorController.h b/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetEditorController.h
index 6179634..4c0d4ce 100644
--- a/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetEditorController.h
+++ b/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetEditorController.h
@@ -8,7 +8,12 @@ class FUICommandList;
class AActor;
class IPersonaPreviewScene;
class IPersonaToolkit;
+class UAnimationAsset;
+class UAnimMontage;
class UAnimSequence;
+class UDebugSkelMeshComponent;
+class UMorphPresetRetargetPreviewAnimInstance;
+class UIKRetargeter;
class ULipSyncComponent;
class ULipSyncMappingDataAsset;
class UMorphControllerComponent;
@@ -27,6 +32,11 @@ public:
UMorphPresetDataAsset* GetPreset() const;
USkeletalMesh* GetPreviewMesh() const;
bool SetPreviewMesh(USkeletalMesh* InPreviewMesh);
+ USkeletalMesh* GetAnimationPreviewMesh() const;
+ UAnimMontage* GetPreviewMontage() const;
+ bool SetPreviewMontage(UAnimMontage* InMontage);
+ UIKRetargeter* GetPreviewIKRetargeter() const;
+ bool SetPreviewIKRetargeter(UIKRetargeter* InRetargeter);
TSharedPtr GetPersonaToolkit() const { return PersonaToolkit; }
TSharedPtr GetPreviewScene() const;
@@ -65,8 +75,15 @@ public:
private:
void RebuildPreviewScene();
void RebuildPreviewAnimation();
+ void RebuildAnimationPreviewMesh();
+ void DestroyAnimationPreviewMesh();
void ApplyPresetToPreview();
void RefreshPreviewAnimationPose();
+ void RefreshAnimationPreviewPose();
+ void ConfigureRetargetPreview();
+ void ClearRetargetPreview(bool bRestorePreviewAnimation);
+ UAnimationAsset* ResolveMontagePreviewAnimation(float& OutAssetTime, float& OutAssetLength) const;
+ bool HasRetargetPreview() const;
void RebuildLipSyncPreviewComponents();
void DestroyLipSyncPreviewComponents();
void TickLipSyncPreviewComponents(float DeltaTime);
@@ -79,6 +96,10 @@ private:
TStrongObjectPtr PreviewAnimation;
TStrongObjectPtr DefaultLipSyncPreviewMapping;
TWeakObjectPtr ActivePreviewMesh;
+ TWeakObjectPtr ActiveAnimationPreviewMesh;
+ TWeakObjectPtr AnimationPreviewMeshComponent;
+ TWeakObjectPtr RetargetPreviewInstance;
+ TWeakObjectPtr ActivePreviewIKRetargeter;
TWeakObjectPtr LipSyncPreviewMapping;
TWeakObjectPtr LipSyncPreviewSound;
TWeakObjectPtr LipSyncPreviewActor;
@@ -87,6 +108,7 @@ private:
bool bIsPlaying = false;
bool bLipSyncPreviewAudioActive = false;
float CurrentTime = 0.0f;
+ uint64 LastTickFrameNumber = MAX_uint64;
float LipSyncPreviewSmoothness = 0.55f;
FText LipSyncPreviewTranscript;
FText PreviewStatusText;
diff --git a/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetRetargetPreviewAnimInstance.h b/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetRetargetPreviewAnimInstance.h
new file mode 100644
index 0000000..0771c90
--- /dev/null
+++ b/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetRetargetPreviewAnimInstance.h
@@ -0,0 +1,48 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include "Animation/AnimInstanceProxy.h"
+#include "Animation/AnimInstance.h"
+#include "AnimNodes/AnimNode_RetargetPoseFromMesh.h"
+#include "MorphPresetRetargetPreviewAnimInstance.generated.h"
+
+class UIKRetargeter;
+class USkeletalMeshComponent;
+
+USTRUCT()
+struct FMorphPresetRetargetPreviewAnimInstanceProxy : public FAnimInstanceProxy
+{
+ GENERATED_BODY()
+
+ FMorphPresetRetargetPreviewAnimInstanceProxy() = default;
+ FMorphPresetRetargetPreviewAnimInstanceProxy(UAnimInstance* InAnimInstance, FAnimNode_RetargetPoseFromMesh* InRetargetNode);
+
+ virtual void Initialize(UAnimInstance* InAnimInstance) override;
+ virtual void PreUpdate(UAnimInstance* InAnimInstance, float DeltaSeconds) override;
+ virtual void CacheBones() override;
+ virtual bool Evaluate(FPoseContext& Output) override;
+ virtual void UpdateAnimationNode(const FAnimationUpdateContext& InContext) override;
+
+ void Configure(UIKRetargeter* InRetargeter, TWeakObjectPtr InSourceMeshComponent);
+
+ FAnimNode_RetargetPoseFromMesh* RetargetNode = nullptr;
+};
+
+UCLASS(Transient, NotBlueprintable)
+class FUNNYGIRLEDITOR_API UMorphPresetRetargetPreviewAnimInstance : public UAnimInstance
+{
+ GENERATED_BODY()
+
+public:
+ UMorphPresetRetargetPreviewAnimInstance(const FObjectInitializer& ObjectInitializer);
+
+ void Configure(UIKRetargeter* InRetargeter, TWeakObjectPtr InSourceMeshComponent);
+
+protected:
+ virtual void NativeInitializeAnimation() override;
+ virtual FAnimInstanceProxy* CreateAnimInstanceProxy() override;
+
+ UPROPERTY(Transient)
+ FAnimNode_RetargetPoseFromMesh RetargetNode;
+};
diff --git a/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetViewportPanel.h b/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetViewportPanel.h
index abfc5d8..097e9d7 100644
--- a/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetViewportPanel.h
+++ b/Source/FunnyGirlEditor/Public/Morph/Editor/MorphPresetViewportPanel.h
@@ -6,6 +6,8 @@
#include "Widgets/SCompoundWidget.h"
class FMorphPresetEditorController;
+class UAnimMontage;
+class UIKRetargeter;
class ULipSyncMappingDataAsset;
class USoundBase;
class USkeletalMesh;
@@ -24,9 +26,13 @@ public:
private:
void RebuildContent();
void OnPreviewMeshChanged(const struct FAssetData& AssetData);
+ void OnPreviewMontageChanged(const struct FAssetData& AssetData);
+ void OnPreviewIKRetargeterChanged(const struct FAssetData& AssetData);
void OnLipSyncSoundChanged(const struct FAssetData& AssetData);
void OnLipSyncMappingChanged(const struct FAssetData& AssetData);
FString GetSelectedPreviewMeshPath() const;
+ FString GetSelectedPreviewMontagePath() const;
+ FString GetSelectedPreviewIKRetargeterPath() const;
FString GetSelectedLipSyncSoundPath() const;
FString GetSelectedLipSyncMappingPath() const;
FReply OnPlayLipSyncClicked();