Skip to content

Commit 11b8a38

Browse files
committed
Version 1.7.2,
1 parent 4ab2f84 commit 11b8a38

File tree

18 files changed

+139
-27
lines changed

18 files changed

+139
-27
lines changed

Runtime/API/Core/KinetixCoreBehaviour.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private static void InitializeManagers(KinetixCoreConfiguration _Configuration)
6767
managerLocator.Register<ContextManager>(new ContextManager(serviceLocator, _Configuration));
6868
managerLocator.Register<NetworkManager>(new NetworkManager(serviceLocator, _Configuration));
6969

70-
managerLocator.Get<AccountManager>().OnDisconnectedAccount += managerLocator.Get<UGCManager>().ClearPolling;
70+
managerLocator.Get<AccountManager>().OnDisconnectedAccount += () => managerLocator.Get<UGCManager>().ClearPolling(true);
7171
}
7272

7373
public static bool IsInitialized()

Runtime/API/Core/KinetixCoreConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ public class KinetixCoreConfiguration: IKinetixConfiguration
3131

3232
// How many emotes have to be cached?
3333
public int CachedEmotesNb = 10;
34-
34+
3535
}
3636
}

Runtime/API/UGC/KinetixUGC.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ public void GetRetakeUgcUrl(string _RetakeToken, Action<string> _UrlFetchedCallb
3535
KinetixUGCBehaviour.GetRetakeUgcUrl(_RetakeToken, _UrlFetchedCallback);
3636
}
3737

38+
public void ClearCachedUrl()
39+
{
40+
KinetixUGCBehaviour.ClearCachedUrl();
41+
}
42+
3843
private void UGCTokenExpired()
3944
{
4045
OnUGCTokenExpired?.Invoke();

Runtime/API/UGC/KinetixUGCBehaviour.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,10 @@ public static bool IsUGCAvailable()
2828
{
2929
return KinetixCoreBehaviour.ManagerLocator.Get<UGCManager>().IsUGCAvailable();
3030
}
31+
32+
public static void ClearCachedUrl()
33+
{
34+
KinetixCoreBehaviour.ManagerLocator.Get<UGCManager>().ClearPolling();
35+
}
3136
}
3237
}

Runtime/Animator/CharacterComponent/KinetixCharacterComponentLocal.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ public override void Init(ServiceLocator _ServiceLocator, KinetixAvatar _Kinetix
4949
sampler.RequestAvatarPos += Sampler_RequestAvatarPos ;
5050
sampler.RequestAvatar += Sampler_RequestAvatar ;
5151

52-
sampler.Effect.RegisterEffect(new SmoothFrameEffect());
53-
sampler.Effect.RegisterEffect(new ClipToClipBlendEffect());
54-
sampler.Effect.RegisterEffect(new AnimatorBlendEffect(OUTER_BLEND_DURATION));
52+
//sampler.Effect.RegisterEffect(new SmoothFrameEffect());
53+
//sampler.Effect.RegisterEffect(new ClipToClipBlendEffect());
54+
//sampler.Effect.RegisterEffect(new AnimatorBlendEffect(OUTER_BLEND_DURATION));
5555
sampler.Effect.RegisterEffect(new RootMotionEffect(_RootMotionConfig));
5656

5757
currentFrame = null;

Runtime/Animator/Sampler/Effect/Implementation/RootMotionEffect.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class RootMotionEffect : IFrameEffectModify, ISamplerAuthority, IFrameEff
2828
public int Priority => -100;
2929

3030
private int countAnime = 0;
31-
private bool isEnabled;
31+
private bool isEnabled = false;
3232

3333
private int hipsIndexStartPos;
3434

@@ -55,7 +55,7 @@ public RootMotionEffect(RootMotionConfig _Config)
5555
public SamplerAuthorityBridge Authority { get; set; }
5656

5757
/// <inheritdoc/>
58-
public void OnAnimationStart(KinetixClip _)
58+
public void OnAnimationStart()
5959
{
6060
if (++countAnime > 1 && isEnabled) RevertToOffsets();
6161

@@ -68,15 +68,15 @@ public void OnAnimationStart(KinetixClip _)
6868

6969
hipsIndexStartPos = Array.IndexOf(startPos.bones, HumanBodyBones.Hips);
7070
hips = skeleton[UnityHumanUtils.AVATAR_HIPS];
71-
root = (AvatarBoneTransform)hips.IterateParent().Last();
71+
root = (AvatarBoneTransform) hips.IterateParent().Last();
7272
isEnabled = true;
7373

7474
//Set hips to pos
7575
TransformData transform = startPos.humanTransforms[hipsIndexStartPos];
76-
TrDataToTrAvatar(transform, hips);
76+
transform = TrDataToTrAvatar(transform, hips);
7777

7878
//Set root to pos
79-
if (startPos.root.HasValue) TrDataToTrAvatar(startPos.root.Value, root);
79+
if (startPos.root.HasValue) startPos.root = TrDataToTrAvatar(startPos.root.Value, root);
8080

8181
//Init root motion
8282
SaveOffsets();
@@ -94,11 +94,12 @@ public void OnAnimationEnd()
9494
public void OnPlayedFrame(ref KinetixFrame _FinalFrame, KinetixFrame[] _Frames, in KinetixClipTrack[] _Tracks)
9595
{
9696
if (!isEnabled) return;
97+
9798
int hipsIndexCurrent = Array.IndexOf(_FinalFrame.bones, HumanBodyBones.Hips);
9899
TransformData transform = _FinalFrame.humanTransforms[hipsIndexCurrent];
99100

100101
//Set hips from curve
101-
TrDataToTrAvatar(transform, hips);
102+
transform = TrDataToTrAvatar(transform, hips);
102103

103104
ProcessRootMotionAfterAnimSampling();
104105

@@ -115,21 +116,28 @@ private TransformData TrAvatarToTrData(TransformData _Original, AvatarBoneTransf
115116
if (_Original.position.HasValue) _Original.position = _Transform.localPosition;
116117
if (_Original.rotation.HasValue) _Original.rotation = _Transform.localRotation;
117118
if (_Original.scale.HasValue ) _Original.scale = _Transform.localScale;
119+
118120
return _Original;
119121
}
120122

121-
private void TrDataToTrAvatar(TransformData _Data, AvatarBoneTransform _Transform)
123+
private TransformData TrDataToTrAvatar(TransformData _Data, AvatarBoneTransform _Transform)
122124
{
125+
if (_Transform == null) return _Data;
126+
123127
if (_Data.position.HasValue) _Transform.localPosition = _Data.position.Value;
124128
if (_Data.rotation.HasValue) _Transform.localRotation = _Data.rotation.Value;
125129
if (_Data.scale.HasValue ) _Transform.localScale = _Data.scale.Value;
130+
131+
return _Data;
126132
}
127133

128134
/// <inheritdoc/>
129135
public void OnQueueStart()
130136
{
131137
skeleton?.Dispose();
132138
skeleton = Authority.GetAvatar();
139+
140+
OnAnimationStart();
133141
}
134142

135143

@@ -139,6 +147,8 @@ public void OnQueueEnd()
139147
isEnabled = false;
140148
skeleton?.Dispose();
141149
skeleton = null;
150+
151+
OnAnimationEnd();
142152
}
143153

144154
/// <inheritdoc/>
@@ -158,7 +168,7 @@ private void ProcessRootMotionAfterAnimSampling()
158168

159169
// Handling root post-processing
160170
Vector3 newRootPosition = Vector3.zero;
161-
calculatedRootPosition = root.localRotation * ((armatureRotation * hips.localPosition) - lastHipsPosition);
171+
calculatedRootPosition = root.localRotation * ((armatureRotation * hips.localPosition) - lastHipsPosition) * config.ArmatureRootScaleRatio;
162172

163173
if (!config.BakeIntoPoseXZ && config.ApplyHipsXAndZPos)
164174
{

Runtime/Clip/Kinetix.Clip.dll

0 Bytes
Binary file not shown.

Runtime/Const/KinetixConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace Kinetix.Internal
88
{
99
public static class KinetixConstants
1010
{
11-
public const string version = "1.7.1";
11+
public const string version = "1.7.2";
1212
public static bool C_ShouldUGCBeAvailable = true;
1313

1414
#if STAGING_KINETIX

Runtime/Managers/UGCManager.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,14 @@ public async void StartPollingForNewUGCToken()
156156
OnUGCTokenExpired?.Invoke();
157157
}
158158

159-
public void ClearPolling()
159+
public void ClearPolling(bool _ForceCancelUrlFetching = false)
160160
{
161161
TokenUUID = string.Empty;
162162
UgcUrl = string.Empty;
163163
lastFetchDate = System.DateTime.MinValue;
164+
165+
if (_ForceCancelUrlFetching == false)
166+
return;
164167

165168
if (tokenCancellationGetUgcUrl != null && !tokenCancellationGetUgcUrl.IsCancellationRequested)
166169
tokenCancellationGetUgcUrl?.Cancel();

Runtime/Operations/OperationGetRawAPIResult/GetRawAPIResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public override async Task Execute()
1515
{ "Content-type", "application/json" },
1616
{ "Accept", "application/json" },
1717
{ "x-api-key", Config.ApiKey },
18-
{ "User-Agent", KinetixConstants.SDK_USER_AGENT}
18+
//{ "sdk-version", KinetixConstants.SDK_USER_AGENT}
1919
};
2020

2121
WebRequestDispatcher request = new WebRequestDispatcher();

Runtime/Providers/Providers/SdkApi/SdkApiProviderWrapper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ public async Task<SdkApiProcess> ValidateEmote(string _ProcessId)
198198
{ "Content-type", "application/json" },
199199
{ "Accept", "application/json" },
200200
{ "x-api-key", GameAPIKey },
201-
{ "User-Agent", KinetixConstants.SDK_USER_AGENT}
201+
//{ "sdk-version", KinetixConstants.SDK_USER_AGENT}
202202
};
203203

204204
try
@@ -231,7 +231,7 @@ public async Task<SdkApiProcess> RetakeEmote(string _ProcessId)
231231
{ "Content-type", "application/json" },
232232
{ "Accept", "application/json" },
233233
{ "x-api-key", GameAPIKey },
234-
{ "User-Agent", KinetixConstants.SDK_USER_AGENT}
234+
//{ "sdk-version", KinetixConstants.SDK_USER_AGENT}
235235
};
236236

237237
try

Runtime/Retarget/CompilationLog.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Starting compiling Kinetix.Retarget.dll
2-
D:\UnityInstall\2020.3.33f1\Editor\Data\Tools\RoslynScripts\unity_csc.bat /noconfig @Temp/UnityTempFile-e680ccb81f1a42b46b8b6f16c199a455
2+
D:\UnityInstall\2020.3.33f1\Editor\Data\Tools\RoslynScripts\unity_csc.bat /noconfig @Temp/UnityTempFile-41fedb1fe2adc184a86ffb9a6242b2bc
33
# Starting IL post processing on Kinetix.Retarget.dll
4-
D:/UnityInstall/2020.3.33f1/Editor/Data/MonoBleedingEdge/bin/mono.exe D:/UnityInstall/2020.3.33f1/Editor/Data/Tools/ILPostProcessorRunner/ILPostProcessorRunner.exe @D:/Kinetix/kinetix-emote-wheel/Temp/UnityTempFile-fc0f80e262409e14d9cdd4eaeb83b179
4+
D:/UnityInstall/2020.3.33f1/Editor/Data/MonoBleedingEdge/bin/mono.exe D:/UnityInstall/2020.3.33f1/Editor/Data/Tools/ILPostProcessorRunner/ILPostProcessorRunner.exe @D:/Kinetix/kinetix-emote-wheel/Temp/UnityTempFile-108d22e43c88b154b937ce62e705d95a

Runtime/Retarget/Kinetix.Retarget.dll

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

Runtime/Utils/Animation/RootMotionConfig.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,18 @@ public class RootMotionConfig
1414
public bool BakeIntoPoseXZ = false;
1515
public bool BakeIntoPoseY = false;
1616

17-
public RootMotionConfig(bool ApplyHipsYPos = false, bool ApplyHipsXAndZPos = false, bool BackToInitialPose = false, bool BakeIntoPoseXZ = false, bool BakeIntoPoseY = false)
17+
// Use this is you scaled up of down your armature or a parent of the hips compared to your root.
18+
//Ex: 100f if your armature is x100 your root.
19+
public float ArmatureRootScaleRatio = 1.0f;
20+
21+
public RootMotionConfig(bool ApplyHipsYPos = false, bool ApplyHipsXAndZPos = false, bool BackToInitialPose = false, bool BakeIntoPoseXZ = false, bool BakeIntoPoseY = false, float ArmatureRootScaleRatio = 1.0f)
1822
{
1923
this.ApplyHipsYPos = ApplyHipsYPos;
2024
this.ApplyHipsXAndZPos = ApplyHipsXAndZPos;
2125
this.BackToInitialPose = BackToInitialPose;
2226
this.BakeIntoPoseXZ = BakeIntoPoseXZ;
23-
this.BakeIntoPoseY = BakeIntoPoseXZ;
27+
this.BakeIntoPoseY = BakeIntoPoseY;
28+
this.ArmatureRootScaleRatio = ArmatureRootScaleRatio;
2429
}
2530
}
2631
}
0 Bytes
Binary file not shown.

Samples~/Common/IdleController.controller

Lines changed: 88 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ AnimatorState:
1010
m_Name: Breathing Idle
1111
m_Speed: 1
1212
m_CycleOffset: 0
13-
m_Transitions: []
13+
m_Transitions:
14+
- {fileID: -2312700300723438230}
1415
m_StateMachineBehaviours: []
1516
m_Position: {x: 50, y: 50, z: 0}
1617
m_IKOnFeet: 0
@@ -26,6 +27,53 @@ AnimatorState:
2627
m_MirrorParameter:
2728
m_CycleOffsetParameter:
2829
m_TimeParameter:
30+
--- !u!1101 &-6750488888528242637
31+
AnimatorStateTransition:
32+
m_ObjectHideFlags: 1
33+
m_CorrespondingSourceObject: {fileID: 0}
34+
m_PrefabInstance: {fileID: 0}
35+
m_PrefabAsset: {fileID: 0}
36+
m_Name:
37+
m_Conditions: []
38+
m_DstStateMachine: {fileID: 0}
39+
m_DstState: {fileID: -7692264150439219941}
40+
m_Solo: 0
41+
m_Mute: 0
42+
m_IsExit: 0
43+
serializedVersion: 3
44+
m_TransitionDuration: 0.25
45+
m_TransitionOffset: 0
46+
m_ExitTime: 0.765625
47+
m_HasExitTime: 1
48+
m_HasFixedDuration: 1
49+
m_InterruptionSource: 0
50+
m_OrderedInterruption: 1
51+
m_CanTransitionToSelf: 1
52+
--- !u!1101 &-2312700300723438230
53+
AnimatorStateTransition:
54+
m_ObjectHideFlags: 1
55+
m_CorrespondingSourceObject: {fileID: 0}
56+
m_PrefabInstance: {fileID: 0}
57+
m_PrefabAsset: {fileID: 0}
58+
m_Name:
59+
m_Conditions:
60+
- m_ConditionMode: 1
61+
m_ConditionEvent: OnHit
62+
m_EventTreshold: 0
63+
m_DstStateMachine: {fileID: 0}
64+
m_DstState: {fileID: 6180982101118585296}
65+
m_Solo: 0
66+
m_Mute: 0
67+
m_IsExit: 0
68+
serializedVersion: 3
69+
m_TransitionDuration: 0.25
70+
m_TransitionOffset: 0
71+
m_ExitTime: 0.97483224
72+
m_HasExitTime: 0
73+
m_HasFixedDuration: 1
74+
m_InterruptionSource: 0
75+
m_OrderedInterruption: 1
76+
m_CanTransitionToSelf: 1
2977
--- !u!91 &9100000
3078
AnimatorController:
3179
m_ObjectHideFlags: 0
@@ -34,7 +82,13 @@ AnimatorController:
3482
m_PrefabAsset: {fileID: 0}
3583
m_Name: IdleController
3684
serializedVersion: 5
37-
m_AnimatorParameters: []
85+
m_AnimatorParameters:
86+
- m_Name: OnHit
87+
m_Type: 9
88+
m_DefaultFloat: 0
89+
m_DefaultInt: 0
90+
m_DefaultBool: 0
91+
m_Controller: {fileID: 0}
3892
m_AnimatorLayers:
3993
- serializedVersion: 5
4094
m_Name: Base Layer
@@ -48,6 +102,33 @@ AnimatorController:
48102
m_IKPass: 0
49103
m_SyncedLayerAffectsTiming: 0
50104
m_Controller: {fileID: 9100000}
105+
--- !u!1102 &6180982101118585296
106+
AnimatorState:
107+
serializedVersion: 6
108+
m_ObjectHideFlags: 1
109+
m_CorrespondingSourceObject: {fileID: 0}
110+
m_PrefabInstance: {fileID: 0}
111+
m_PrefabAsset: {fileID: 0}
112+
m_Name: Reaction
113+
m_Speed: 1
114+
m_CycleOffset: 0
115+
m_Transitions:
116+
- {fileID: -6750488888528242637}
117+
m_StateMachineBehaviours: []
118+
m_Position: {x: 50, y: 50, z: 0}
119+
m_IKOnFeet: 0
120+
m_WriteDefaultValues: 1
121+
m_Mirror: 0
122+
m_SpeedParameterActive: 0
123+
m_MirrorParameterActive: 0
124+
m_CycleOffsetParameterActive: 0
125+
m_TimeParameterActive: 0
126+
m_Motion: {fileID: -203655887218126122, guid: f38d75dd21bdc134e98c2307c7f46ecb, type: 3}
127+
m_Tag:
128+
m_SpeedParameter:
129+
m_MirrorParameter:
130+
m_CycleOffsetParameter:
131+
m_TimeParameter:
51132
--- !u!1107 &6691530209350783503
52133
AnimatorStateMachine:
53134
serializedVersion: 6
@@ -59,14 +140,17 @@ AnimatorStateMachine:
59140
m_ChildStates:
60141
- serializedVersion: 1
61142
m_State: {fileID: -7692264150439219941}
62-
m_Position: {x: 260, y: 180, z: 0}
143+
m_Position: {x: 260, y: 190, z: 0}
144+
- serializedVersion: 1
145+
m_State: {fileID: 6180982101118585296}
146+
m_Position: {x: 450, y: 340, z: 0}
63147
m_ChildStateMachines: []
64148
m_AnyStateTransitions: []
65149
m_EntryTransitions: []
66150
m_StateMachineTransitions: {}
67151
m_StateMachineBehaviours: []
68152
m_AnyStatePosition: {x: 50, y: 20, z: 0}
69153
m_EntryPosition: {x: 50, y: 120, z: 0}
70-
m_ExitPosition: {x: 490, y: 140, z: 0}
154+
m_ExitPosition: {x: 480, y: 130, z: 0}
71155
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
72156
m_DefaultState: {fileID: -7692264150439219941}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.kinetix.coreweb2",
3-
"version": "1.7.1",
3+
"version": "1.7.2",
44
"displayName": "Kinetix Core",
55
"description": "Kinetix Core SDK",
66
"samples": [

0 commit comments

Comments
 (0)